蜂窝式排列方式
根据传入不同的参数,智能的显示蜂窝式布局,效果如下图:
制作步骤:
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; } } } } }