flash on 2013-1-14
♥0 |
Line 85 |
Modified 2013-01-14 22:18:07 |
MIT License
archived:2017-03-30 22:55:16
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