蜂窝式排列方式
根据传入不同的参数,智能的显示蜂窝式布局,效果如下图:


制作步骤:
1、在库中建一个mc 绑定名称为“myMC” 
2、建一个文档类,代码如下:
package
{
import flash.display.Sprite;
/**
* @author chb
* @data 2015-8-26
* @email 645338868@qq.com
*/
public class ReseauLayout extends Sprite
{
private var container:Sprite;
public function ReseauLayout ()
{
init ();
}
private function init ():void
{
container = new Sprite();
this.addChild (container);
container.x = stage.stageWidth * 0.5;
container.y = 200;
setLayout (15,175,3);
}
/*
*@param _count 六边形的个数
*@param itemW 六边形宽
*@param gap 间隔
*@param type 蜂窝的类型,一组多少个六边形
*@param num 每一组中的编号
*
*/
private function setLayout (_count:Number,itemW:Number,gap:Number,type:Number = 3,num:Number = 1):void
{
if (_count > 10)
{
type = 5;
}
var itemY:Number = itemW * Math.cos(30*Math.PI/180);//表示每两个六边形之间的y轴差距
var itemX:Number = itemW * 0.5;//表示每两个六边形之间的x轴差距
for (var i:Number = 0; i<_count; i++)
{
var item:Sprite = new myMC();//六边形单元,库里面绑定
container.addChild (item);
var groupNum:Number = int(i/type);
if (num == 1)
{
item.x = groupNum*(itemW+gap);
item.y = itemY * 2;
}
else if (num == 2)
{
item.x = itemW/2+groupNum*(itemW+gap);
item.y = itemY * 2 - itemY - gap;
}
else if (num == 3)
{
item.x = itemW/2+groupNum*(itemW+gap);
item.y = itemY * 2 + itemY + gap;
}
else if (num == 4)
{
item.x = itemW/2+groupNum*(itemW+gap) + itemW/2 + gap;
item.y = itemY * 2 - itemY * 2 - gap*2;
}
else if (num == 5)
{
item.x = itemW/2+groupNum*(itemW+3) + itemW/2 + gap;
item.y = itemY * 2 + itemY * 2 + gap*2;
}
num++;
if (num == (type+1))
{
num = 1;
}
}
}
}
}

浙公网安备 33010602011771号