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);
}
}