现在的位置: 首页 > 综合 > 正文

flex array操作

2013年10月18日 ⁄ 综合 ⁄ 共 1625字 ⁄ 字号 评论关闭
<?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>

抱歉!评论已关闭.