flash on 2013-1-14

by mutantleg
♥0 | Line 85 | Modified 2013-01-14 22:18:07 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/rVM5
 */

package {
    import flash.text.TextField;
    import flash.display.Sprite;
    import flash.utils.getTimer;
    public class FlashTest extends Sprite {
    
        public var deb:TextField;
    
    
        public function FlashTest() {
            
            deb = new TextField();
            addChild(deb);
            deb.text = "debug";
            deb.width = 400;
            deb.height = 400;
   
            var s:int;
            var e:int;
           
            var a:wItem;         
            var i:int;
            var num:int;
            var veca:Vector.<wItem>;
            var vecb:Vector.<wItem>;
            
            veca = new Vector.<wItem>;
            vecb = new Vector.<wItem>;
            
            
            //num = 16384;
            //num = 8192;
            num = 512;
            
            for (i = 0; i < num; i++)
            {
                a = new wItem();
                veca.push(a);
                vecb.push(a);
            }//nexti
          
            s = getTimer();  
            deb.appendText("\n\n start " + s );
            
            veca.sort(compa);
            
            e = getTimer();
            deb.appendText("\n end " + e );
            deb.appendText("\n diff " + (e-s) );
            deb.appendText("\n \n" );
            
            
            s = getTimer();  
            deb.appendText("\n\n start " + s );
            
            vecb.sort(compb);
            
            e = getTimer();
            deb.appendText("\n end " + e );
            deb.appendText("\n diff " + (e-s) );
            deb.appendText("\n \n" );
            
            
            
        }//ctor
        
        public function compa(a:wItem, b:wItem):Number
        {
            if (a == null && b != null) { return 1;}
            else if (a != null && b == null) { return -1;}
            
            if (a.blend < b.blend) { return -1;}
            else if (a.blend > b.blend) { return 1;}
            
            if (a.prog < b.prog) { return -1;}
            else if (a.prog > b.prog) { return 1;}
        
            if (a.tex < b.tex) { return -1;}
            else if (a.tex > b.tex) { return 1;}
            
            if (a.dist < b.dist) { return 1;}
            else if (a.dist > b.dist) { return -1;}
            
         return 0;   
        }//compa
        
        public function compb(a:wItem, b:wItem):Number
        {
              if (a == null && b != null) { return 1;}
            else if (a != null && b == null) { return -1;}
            
            if (a.value < b.value) { return -1; }
            else if (a.value > b.value) { return 1;}
            
            return 0;
        }//compb
        
        
        
    }//classend
}

internal class wItem
{
    public var dist:Number = 0;
    public var prog:int = 0;
    public var blend:int = 0;
    public var tex:int = 0;
    public var geo:int = 0;
    public var value:int = 0;
    
    public function wItem()
    {
        dist = Math.random() * 1024;
        prog = Math.random() * 4;
        blend = Math.random() * 3;
        tex = Math.random() * 64;
        geo = Math.random() * 32;
        
        //value = Math.random()*0xFFffFFff;
        value = prog << 24 | blend << 16 | tex << 8 | geo;
        
    }//witem
    
};//witem