package { import flash.display.DisplayObject; import flash.display.Sprite; public class Main extends Sprite { public function Main() { var arr:Array = []; for(var i:int = 0;i < 10;i++) { var slot:Slot = new Slot(20,30,i.toString()); addChild(slot); arr.push(slot); } layerSort(this,arr,20,30,11); trace(width,height); } public static function layerSort(parent:DisplayObject,arr:Array, cw:Number,ch:Number,horCount:int):void { var p:int = 0; var index:int = 0; var a:int = 0; var list:Array = []; var obj:Object; if(arr.length > horCount) { a = arr.length / horCount; var b:int = arr.length % horCount; for(var i:int = 0;i < a;i++) { for(var k:int = 0;k <horCount;k++) { index = (i * horCount) + k; obj = new Object(); obj.x = i; obj.y = k; list.push(obj); } } if(b > 0) { for(p = 0;p < b;p++) { index++; obj = new Object(); obj.x = a; obj.y = p; list.push(obj); } } } else { for(p = 0;p < arr.length;p++) { index++; obj = new Object(); obj.x = a; obj.y = p; list.push(obj); } } for(var t:int = 0;t < list.length;t++) { obj = list[t]; arr[t].x = cw * obj.y; arr[t].y = ch * obj.x; } list = []; } } } import flash.display.Sprite; import flash.text.TextField; class Slot extends Sprite { public function Slot(w:Number,h:Number,_name:String):void { graphics.beginFill(0xff0000,0.5); graphics.lineStyle(0.5,0x00ff00); graphics.drawRect(0,0,w,h); graphics.endFill(); var tf:TextField = new TextField(); tf.text = _name; addChild(tf); } }