新聞中心
本文和大家重點(diǎn)學(xué)習(xí)一下Flex ArrayCollection的概念,經(jīng)常被使用的兩個(gè)集合類(lèi)型是ArrayCollection類(lèi)XMLListCollection類(lèi)。ArrayCollection是Array的包裝類(lèi),提供更方便的如添加和移除數(shù)據(jù)項(xiàng)以及能夠創(chuàng)建游標(biāo)啟用要輕松地存儲(chǔ)數(shù)組中的***讀取的位置等方法。

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出沁水免費(fèi)做網(wǎng)站回饋大家。
Flex ArrayCollection詳解
集合是ActionScript中功能強(qiáng)大的基于索引的數(shù)組組件,添加了如對(duì)內(nèi)容進(jìn)行排序等功能,操作數(shù)組的讀取位置,創(chuàng)建經(jīng)過(guò)排序的數(shù)組視圖。集合也能通知其任意事件監(jiān)聽(tīng)器監(jiān)聽(tīng)其數(shù)據(jù)是否改變,以及任何數(shù)據(jù)項(xiàng)被添加到源數(shù)組時(shí)可執(zhí)行自定義邏輯。當(dāng)數(shù)據(jù)改變時(shí)可通知其監(jiān)聽(tīng)器,這是集合的新功能,叫數(shù)據(jù)綁定,還有就是允許DataGrid和List組件對(duì)其內(nèi)容進(jìn)行排序和過(guò)濾。集合是使用數(shù)據(jù)驅(qū)動(dòng)控件以及從數(shù)據(jù)庫(kù)返回的服務(wù)器端服務(wù)的重要內(nèi)容。
經(jīng)常被使用的兩個(gè)集合類(lèi)型是Flex ArrayCollection類(lèi)XMLListCollection類(lèi)。ArrayCollection是Array的包裝類(lèi),提供更方便的如添加和移除數(shù)據(jù)項(xiàng)以及能夠創(chuàng)建游標(biāo)啟用要輕松地存儲(chǔ)數(shù)組中的***讀取的位置等方法。而XMLListCollection是XML對(duì)象的包裝類(lèi),提供的功能有:根據(jù)索引訪(fǎng)問(wèn)數(shù)據(jù),添加新對(duì)象以及游標(biāo)等方法。XMLListCollection對(duì)于處理XML對(duì)象以及經(jīng)常需要解析XML為數(shù)組時(shí)特別有用。
使用addItemAt或addItem方法插入對(duì)象到ArrayCollection,getItemIndex或contains方法用于檢測(cè)數(shù)據(jù)項(xiàng)是否已存在于數(shù)組中,而ArrayCollection的sort屬性是對(duì)ArrayCollection排序以及通過(guò)某個(gè)字段決定接收***個(gè)或***一個(gè)數(shù)據(jù)。
- 1.
- 2.
- 3.importmx.collections.SortField;
- 4.importmx.collections.Sort;
- 5.importmx.collections.ArrayCollection;
- 6.privatevarcoll:ArrayCollection;
- 7.privatefunctioninit():void{
- 8.coll=newArrayCollection(
- 9.[{name:"MartinFoo",age:25},
- 10.{name:"JoeBar",age:15},
- 11.{name:"JohnBaz",age:23}]);
- 12.}
- 13.要插入元素到指定位置,可使用addItemAt方法:
- 14.privatefunctionaddItem():void{
- 15.coll.addItemAt({name:"JamesFez",age:40},0);
- 16.}
- 17.]]>
- 18.
Sort對(duì)象提供findItem方法用于搜索這個(gè)ArrayCollection中的所有元素。方法原型如下:
- publicfunctionfindItem(items:Array,values:Object,mode:String,
- returnInsertionIndex:Boolean=false,compareFunction:Function=null):int
Value參數(shù)可以是包含屬性和所需值的任何對(duì)象。Mode字符串可以是Sort.ANY_INDEX_MODE,表示返回任何匹配項(xiàng)索引,Sort.FIRST_INDEX_MODE表示返回***個(gè)匹配項(xiàng)索引,Sort.LAST_INDEX_MODE表示返回***一個(gè)匹配項(xiàng)索引。
returnInsertionIndex參數(shù)表示如果該方法找不到由values參數(shù)標(biāo)識(shí)的項(xiàng)目,并且此參數(shù)為true,則findItem()方法將返回這些值的插入點(diǎn),也就是排序順序中應(yīng)插入此項(xiàng)目的。
compareFunction設(shè)置用于查找該項(xiàng)目的比較運(yùn)算符函數(shù).
使用Sort對(duì)象的findItem方法代替上面的方法:
- 1.privatefunctioncheckExistence():int{
- 2.varsort:Sort=newSort();
- 3.returnsort.findItem(coll.source,
- 4.{name:nameTI.text,age:Number(ageTI.text)},
- 5.Sort.ANY_INDEX_MODE);
- 6.}
首先要?jiǎng)?chuàng)建一個(gè)Sort,傳遞一個(gè)SortField對(duì)象數(shù)組給fields屬性。這些SortField對(duì)象包含的字符串正是每個(gè)Flex ArrayCollection元素將要用來(lái)排序的屬性。如要對(duì)每個(gè)對(duì)象的age屬性進(jìn)行排序,創(chuàng)建Sort對(duì)象,傳遞SortField,設(shè)置排序字段為age:
- 1.privatefunctiongetOldest():void{
- 2.varsort:Sort=newSort();
- 3.sort.fields=[newSortField("age",false)];
- 4.coll.sort=sort;
- 5.coll.refresh();
- 6.trace(coll.getItemAt(0).age+""+coll.getItemAt(0).name);
- 7.}
過(guò)濾 Flex ArrayCollection
對(duì)Flex ArrayCollection數(shù)據(jù)進(jìn)行過(guò)濾,設(shè)置過(guò)濾器移除些不匹配的結(jié)果。
將原型為function(item:Object):Boolean的函數(shù)傳遞給ArrayCollection的filter屬性。如果返回true表示值繼續(xù)留在ArrayCollection,返回false表示其值被移除。
filterFunction屬性是由ListCollectionView類(lèi)定義,它是ArrayCollection的父類(lèi)。當(dāng)過(guò)濾器函數(shù)被傳遞給繼承自L(fǎng)istCollectionView的任何子類(lèi)后,這里為ArrayCollection對(duì)象,應(yīng)用過(guò)濾器后必須調(diào)用refresh方法:
- 1.importmx.collections.ArrayCollection;
- 2.privatevarcoll:ArrayCollection;
- 3.privatefunctioninit():void{
- 4.coll=newArrayCollection([
- 5.{name:"MartinFoo",age:25},
- 6.{name:"JoeBar",age:15},
- 7.{name:"JohnBaz",age:23},
- 8.{name:"MattBaz",age:21}]);
- 9.coll.filterFunction=filterFunc;
- 10.coll.refresh();
- 11.for(vari:int=0;i
- 12.trace(coll.getItemAt(i).name);
- 13.}
- 14.}
- 15.privatefunctionfilterFunc(value:Object):Object{
- 16.if(Number(value.age)>21){
- 17.returntrue;
- 18.}rreturnfalse;
- 19.}
當(dāng)前名稱(chēng):FlexArrayCollection類(lèi)用法詳解
URL地址:http://www.5511xx.com/article/cdjeoej.html


咨詢(xún)
建站咨詢(xún)
