一个缓动菜单的小例子,用到了sortOn排序里的Array.NUMERIC方法,还用了TweenLite做缓动效果,简单而实用的方法,可以运用在很多别的地方。
主要代码:
1 2 3 4 5 6 7 8 9 | private function sortLayers():void { layers.sortOn( 'y', Array.NUMERIC ); for (var i:int = 0; i < layers.length; i++) { TweenLite.to( layers[i], 0.5, { x:0, y:(layers[i].height + LAYER_SPACING) * i, ease:Quint.easeOut } ); } } |
对数组的排序可以使用三种方法(reverse()、sort() 和 )sortOn()
reverse() 方法不带参数,也不返回值,但可以将数组从当前顺序切换为相反顺序。
sort() 方法按照”默认排序顺序”重新安排数组中的元素。
着重说下sortOn()
sort() 方法具有 options 参数,可通过该参数改变默认排序顺序的各个特征。options 是由 Array 类中的一组静态常量定义的,如以下列表所示:
Array.CASEINSENSITIVE:此选项可使排序不区分大小写。例如,小写字母 b 优先于大写字母 D。Array.DESCENDING:用于颠倒默认的升序排序。例如,字母 B 优先于字母 A。Array.UNIQUESORT:如果发现两个相同的值,此选项将导致排序中止。Array.NUMERIC:这会导致排序按照数字顺序进行,比方说 3 优先于 10。
以下是帮助文档的一个例子,可以很清晰的看出每个参数的作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var poets:Array = new Array(); poets.push({name:"Angelou", born:"1928"}); poets.push({name:"Blake", born:"1757"}); poets.push({name:"cummings", born:"1894"}); poets.push({name:"Dante", born:"1265"}); poets.push({name:"Wang", born:"701"}); poets.sortOn("born", Array.NUMERIC); for (var i:int = 0; i < poets.length; ++i) { trace(poets[i].name, poets[i].born); } /* 输出: Wang 701 Dante 1265 Blake 1757 cummings 1894 Angelou 1928 */ |
更多详细的例子和说明可以参考帮助文档
Down this example!





