<?xml version="1.0"?> <!-- textcontrols/StyleSheetExample.mxml --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="init()"> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.controls.Button; import mx.controls.Label; public function init():void{ //ref link: http://livedocs.adobe.com/flex/3/html/help.html?content=10_Lists_of_data_3.html var array:Array=new Array(); var theLabel:Label=new Label(); theLabel.text="aa"; array.push({name: "aaa", label:theLabel}); theLabel=new Label(); theLabel.text="dd"; array.push({name: "ddd", label:theLabel}); theLabel=new Label(); theLabel.text="cc"; array.push({name: "ccc", label:theLabel}); //get array length trace("length="+array.length); trace("===test iterate==="); //iterate array for (var i:int = 0; i < array.length; ++i){ trace(array[i].name); } //sort array trace("===test sort==="); array.sortOn("name"); for (var i:int = 0; i < array.length; ++i){ trace(array[i].name); } //get index by key trace("===test search key==="); var search:String="ccc"; for (var i:int = 0; i < array.length; ++i){ if(array[i].name==search){ trace(i); break; } } //insert element to 0 and 1 element之间 trace("===test insert==="); theLabel=new Label(); theLabel.text="bb"; array.splice(1,0,{name: "bbb", label:theLabel}); for (var i:int = 0; i < array.length; ++i){ trace(array[i].name); } //delete element (不能使用 "delete array[2]"代码,因为这只会把array[2] element变成undefine,而不会remove it from array trace("===test delete==="); array.splice(2,1); //delete 第3个element,如果是array.splice(2,2),则是delete第3和4个element for (var i:int = 0; i < array.length; ++i){ trace(array[i].name); } trace(Label(array[1].label).text); } ]]> </fx:Script> </s:Application>