Freaky Vector Sorting ... @author Martin Jonasson (m@webbfarbror.se) grapefrukt forked:1favorite:0lines:49license : MIT License modified : 2011-07-05 21:56:49 Embed Tweet 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 }; } Code Fullscreen Preview Fullscreen sort TextFormat text length addChild push Vector Math.random Sprite int Number sort new page view favorite forked pv150 forked from: Freaky Vector Sor.. grapefrukt forked:0 favorite:0lines:49 (diff:1)