Freaky Vector Sorting
...
@author Martin Jonasson (m@webbfarbror.se)
♥0 |
Line 49 |
Modified 2011-07-05 21:56:49 |
MIT License
archived:2017-03-20 12:02:12
ActionScript3 source code
/**
* Copyright grapefrukt ( http://wonderfl.net/user/grapefrukt )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/rK5r
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
/**
* ...
* @author Martin Jonasson (m@webbfarbror.se)
*/
public class TestVectorSort extends Sprite{
public function TestVectorSort() {
var v:Vector.<Item> = new Vector.<Item>;
var i:int = 0
for (i = 0; i < 30; i++) {
v.push(new Item(Math.random() * 5));
}
v.sort(_broken_sort);
var t:TextField = new TextField;
t.autoSize = TextFieldAutoSize.LEFT;
t.defaultTextFormat = new TextFormat("Consolas", 12, 0x000000);
t.text = "broken sort:\n";
addChild(t);
for (i = 0; i < v.length; i++) {
t.appendText(i + "\t" + v[i].value + "\n");
}
v.sort(_working_sort);
t = new TextField;
t.x = 200;
t.autoSize = TextFieldAutoSize.LEFT;
t.defaultTextFormat = new TextFormat("Consolas", 12, 0x000000);
t.text = "working sort:\n";
addChild(t);
for (i = 0; i < v.length; i++) {
t.appendText(i + "\t" + v[i].value + "\n");
}
}
private function _broken_sort(x:Item, y:Item):Number {
return x.value - y.value;
}
private function _working_sort(x:Item, y:Item):Number {
if (x.value > y.value) return 1;
if (x.value < y.value) return -1;
return 0;
}
}
}
class Item {
private var _value:Number = 0;
public function Item(value:Number) {
_value = value;
}
public function get value():Number { return _value };
}