首页 > 技术文章 > 视图排序 sort

jiangjieqim 2016-04-13 09:46 原文

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

 

推荐阅读