日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
FlexArray和FlexArrayCollection的用法和區(qū)別

本文和大家重點(diǎn)討論一下Flex Array和Flex ArrayCollection的用法和區(qū)別,這里從六個(gè)方面向大家介紹,相信通過本文的學(xué)習(xí)你對(duì)二者之間的聯(lián)系會(huì)有明確的認(rèn)識(shí)。

創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十載,專業(yè)且經(jīng)驗(yàn)豐富。十載網(wǎng)站優(yōu)化營銷經(jīng)驗(yàn),我們已為上1000+中小企業(yè)提供了成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作解決方案,按需規(guī)劃網(wǎng)站,設(shè)計(jì)滿意,售后服務(wù)無憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!

Flex Array和Flex ArrayCollection的用法和區(qū)別

1.Flex Array作為控件使用

FLEX3寫法:

 
 
 
  1. Flash
  2. Director
  3. Dreamweaver
  4. ColdFusion

 FLEX4寫法:

 
 
 
  1. Flex
  2. Flash
  3. Dreamweaver

舉例


注:寫{},則當(dāng)barname數(shù)據(jù)的值修改后,linkbar的數(shù)據(jù)同步更新

2.Flex Array在程序中使用

 
 
 
  1. [Bindable]
  2. publicvarbarname:FlexArray=["Flex","Flash","Dreamweaver"];
  3. varbarname:FlexArray=newFlexArray();
  4. barname.push(“Flex”);
  5. barname.push(“Flash”);
  6. barname.push(“Dreamweaver”);
  7. navigationBar.dataProvider=barname;

 3.Flex Array的排序

 
 
 
  1. privatevartemp:FlexArray=newFlexArray(1,4,3,45,4,6,7,77,9);
  2. functionsortFlex Array(numbers:Flex Array):Flex Array{
  3. numbers.sort(Flex Array.NUMERIC);
  4. returnnumbers;
  5. }

 4.Flex ArrayCollection特點(diǎn)

Flex ArrayCollection是flex中的數(shù)組集合類,它是很常用的,我們使用它時(shí)需要注意幾個(gè)地方。

(1)事件監(jiān)聽
Flex ArrayCollection可以為它注冊(cè)一個(gè)集合改變的監(jiān)聽事件(CollectionEvent.COLLECTION_CHANGE),就是一旦Flex ArrayCollection數(shù)組改變就會(huì)觸發(fā)Event,不是所有情況的改變都會(huì)觸發(fā)改變事件,如果集合當(dāng)中的對(duì)象屬性沒有被綁定,那么你改變它的對(duì)象值也是不會(huì)觸發(fā)事件的,在這種情況下你也許可能需要去將對(duì)象的屬性進(jìn)行綁定或者通過itemUpdated方法去管理對(duì)象值改變,除非集合的長度改變了,事件才會(huì)被觸發(fā)。

(2)對(duì)象刪除
Flex ArrayCollection的對(duì)象刪除方法removeAll(),有這樣一種情況,當(dāng)你在過濾集合數(shù)據(jù)的時(shí)候,它并不會(huì)刪除所有數(shù)據(jù),而是刪除全部過濾的數(shù)據(jù),不符合過濾條件的數(shù)據(jù)就沒被刪除,依然還在source中。

(3)過濾函數(shù)
Flex ArrayCollection有個(gè)filterFunction過濾函數(shù),就是可能集合中你只需要顯示其中某幾個(gè)對(duì)象,你將會(huì)需要根據(jù)對(duì)象條件篩選對(duì)象,那么你可能會(huì)用過濾函數(shù),過濾函數(shù)會(huì)將不符合條件的對(duì)象過濾出來,但是Flex ArrayCollection有個(gè)source屬性是不會(huì)變的,它是個(gè)數(shù)組,所有源數(shù)據(jù)全在里面,盡管你去過濾,所有對(duì)象都會(huì)一直存在其中。

(4)排序
Flex ArrayCollection還有一個(gè)sort屬性是用來排序的,你可以為其指定排序字段。

5.ArrayCollection在程序中使用

(1)插入或刪除

 
 
 
  1. importmx.collections.Flex ArrayCollection;
  2. privatevarcoll:Flex ArrayCollection;
  3. coll=newFlex ArrayCollection(
  4. [{name:"MartinFoo",age:25},
  5. {name:"JoeBar",age:15},
  6. {name:"JohnBaz",age:23}]);
  7. }

要插入元素,可使用addItemAt和addItem:
coll.addItemAt({name:”JamesFez”,age:40},0);
coll.addItem({name:”JamesFez”,age:40});

(2)搜索
Sort對(duì)象提供findItem方法用于搜索這個(gè)Flex ArrayCollection中的所有元素。
方法原型如下:
publicfunctionfindItem(items:Flex 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ù).
舉例

 
 
 
  1. privatefunctioncheckExistence():int{
  2. varsort:Sort=newSort();
  3. returnsort.findItem(coll.source,{name:nameTI.text,age:Number(ageTI.text)},Sort.ANY_INDEX_MODE);
  4. }

 (3)過濾

filterFunction屬性是由ListCollectionView類定義,它是Flex ArrayCollection的父類。
當(dāng)過濾器函數(shù)被傳遞給繼承自ListCollectionView的任何子類后,這里為Flex ArrayCollection對(duì)象,應(yīng)用過濾器后必須調(diào)用refresh方法
將原型為function(item:Object):Boolean的函數(shù)傳遞給Flex ArrayCollection的filter屬性。如果返回true表示值繼續(xù)留在Flex ArrayCollection,返回false表示其值被移除。

(4)排序

首先要?jiǎng)?chuàng)建一個(gè)Sort,傳遞一個(gè)SortField對(duì)象數(shù)組給fields屬性。這些SortField對(duì)象包含的字符串正是每個(gè)Flex ArrayCollection元素將要用來排序的屬性。如要對(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")];
  4. coll.sort=sort;
  5. coll.refresh();
  6. trace(coll.getItemAt(0).age+”“+coll.getItemAt(0).name);
  7. }

先按name升序排序,再按age降序排序
sort.fields=[newSortField("name"),newSortField("age",true,true)];

API說明:
publicfunctionSortField(
name:String=null,
caseInsensitive:Boolean=false,
descending:Boolean=false,
numeric:Object=null)

參數(shù)
name:String(default=null)—此字段用來進(jìn)行比較的屬性的名稱。如果該對(duì)象為簡單類型,則傳遞null。
caseInsensitive:Boolean(default=false)—在對(duì)字符串進(jìn)行排序時(shí),指示比較運(yùn)算符是否忽略值的大小寫。
descending:Boolean(default=false)—指示比較運(yùn)算符是否按降序排列項(xiàng)目。
numeric:Object(default=null)—指示比較運(yùn)算符是否按編號(hào)而不按字母順序比較排序項(xiàng)目。

6.Flex Array和ArrayCollection的比較

Flex Array的優(yōu)點(diǎn):

1)Flex Array的性能優(yōu)于Flex ArrayCollection,從測(cè)試結(jié)果平均看來,F(xiàn)lex ArrayCollection的效率是隨著object的數(shù)目呈線性下降的,而Flex Array則是體現(xiàn)了優(yōu)異的效率,在object增加的情況下,基本上沒有太大的變化。所以如果在你需要遍歷所有元素的情況下(比如說物理引擎,3D引擎等),F(xiàn)lex Array是不錯(cuò)的選擇
程序見附件1.
2)后臺(tái)JavaBean也用的是數(shù)組[]
3)for循環(huán)數(shù)組似乎比foreachFlex ArrayConllection看起來更“傻瓜化”
4)給Flex Array數(shù)組擴(kuò)展長度,也可以變通實(shí)現(xiàn),而且代價(jià)并不大

ArrayCollection的優(yōu)點(diǎn):

1)Flex ArrayCollection實(shí)現(xiàn)接口ICollectionView,在Flex的類定義內(nèi)屬于[數(shù)據(jù)集],他提供更強(qiáng)大的檢索、過濾、排序、分類、更新監(jiān)控等功能。類似的類還有XMLListCollection
2)用Flex Array在作為dataProvider綁定于control之上,就無法獲得控件的更新(實(shí)際上效果是可以得到更新的),除非控件被重新繪制或者dataprovider被重新指定,而Collection則是將Flex Array的副本存儲(chǔ)于Collection類的某個(gè)對(duì)象之中,其特點(diǎn)是Collection類本身就具備了確保數(shù)據(jù)同步的方法,例子如下(取自adobe內(nèi)部工程師training示例,稍有改變)
3)對(duì)Flex ArrayCollection中的對(duì)象進(jìn)行增加刪除更新操作時(shí)Flex ArrayCollection會(huì)產(chǎn)生事件,可以通過collectionchange事件監(jiān)聽,所以在圖表開發(fā)中都用Flex ArrayCollection做數(shù)據(jù)源,一旦有更新,就會(huì)反映在圖標(biāo)上


網(wǎng)頁題目:FlexArray和FlexArrayCollection的用法和區(qū)別
文章路徑:http://m.5511xx.com/article/codohgi.html