<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="initApp();"> <mx:Script> <![CDATA[ private var arr:Array private function initApp():void{ arr = new Array(13,3,89,5,2,7,89); arr.sort(Array.DESCENDING | Array.NUMERIC); list1.dataProvider = arr; var arr2:Array = arr; lbl.text = lbl.text + arr2.toString(); } private function clone(source:Object):* { var myBA:ByteArray = new ByteArray(); myBA.writeObject(source); myBA.position = 0; return(myBA.readObject()); } private function onClick2():void{ var arr2:Array = this.clone(arr); arr2.reverse(); list2.dataProvider = arr2; } private function onClick3():void{ var arr3:Array = arr; arr3.reverse(); list3.dataProvider = arr3; list1.dataProvider = arr; } ]]> </mx:Script> <mx:VBox> <mx:ControlBar id="cb" horizontalGap="1"> <mx:Button id="B" label="A2" click="onClick2();"/> <mx:Button id="C" label="A3" click="onClick3();"/> </mx:ControlBar> <mx:Label id="lbl" text="原始数组为:"/> <mx:HBox> <mx:List id="list1" width="100" height="200"/> <mx:List id="list2" width="100" height="200"/> <mx:List id="list3" width="100" height="200"/> </mx:HBox> </mx:VBox> </mx:Application>
上面的代码中主要使用下面的方法处理clone问题:
private function clone(source:Object):* { var myBA:ByteArray = new ByteArray(); myBA.writeObject(source); myBA.position = 0; return(myBA.readObject()); }