偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 后端
Flex Array和Flex ArrayCollection各有各的特點(diǎn)和作用,本文向大家簡單介紹一下它們的用法和區(qū)別,希望本文的介紹能讓你有所收獲。

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

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

1.Flex Array作為控件使用

FLEX3寫法:
 

  1. <mx:Flex Arrayidmx:Flex Arrayid=”barname”> 
  2. <mx:String>Flash</mx:String> 
  3. <mx:String>Director</mx:String> 
  4. <mx:String>Dreamweaver</mx:String> 
  5. <mx:String>ColdFusion</mx:String> 
  6. </mx:FlexArray> 

 FLEX4寫法:
 

  1. <fx:Flex Arrayidfx:Flex Arrayid=”barname”> 
  2. <fx:String>Flex</fx:String> 
  3. <fx:String>Flash</fx:String> 
  4. <fx:String>Dreamweaver</fx:String> 
  5. </fx:FlexArray> 

舉例
<mx:LinkBarid=”navigationBar”dataProvider=”{barname}”/>
<mx:LinkBarid=”navigationBar”dataProvider=”barname”/>
注:寫{},則當(dāng)barname數(shù)據(jù)的值修改后,linkbar的數(shù)據(jù)同步更新

2.Flex Array在程序中使用

 

  1. [Bindable]  
  2. publicvarbarname:FlexArray=["Flex","Flash","Dreamweaver"];  
  3. <mx:LinkBaridmx:LinkBarid=”navigationBar”dataProvider=”{barname}”/> 
  4. varbarname:FlexArray=newFlexArray();  
  5. barname.push(“Flex”);  
  6. barname.push(“Flash”);  
  7. barname.push(“Dreamweaver”);  
  8. navigationBar.dataProvider=barname;  
  9.  

 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. }  
  6.  

 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);  


先按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,從測試結(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)上

【編輯推薦】

  1. 解析FlexSDK4的十大變化
  2. Flex必須了解的那些事
  3. 在Flex中使用樣式的五大方法
  4. FlexBuilder3.0與Eclipse3.4的完美結(jié)合
  5. Flex ComboBox和Datagrid組件用法指導(dǎo)

 

責(zé)任編輯:佚名 來源: chhua.com
相關(guān)推薦

2010-07-27 14:58:02

Flex ArrayC

2010-07-27 14:36:31

Flex Array

2010-07-30 14:09:30

FlexFlash

2010-08-12 15:30:27

FlexFlash

2010-08-03 15:02:45

FlexPHP

2010-07-27 13:53:15

Flex ComboB

2010-07-27 15:03:37

Flex ArrayC

2010-07-30 14:26:21

FlexFlash

2010-08-13 10:01:46

Flex樣式定義

2010-07-28 16:05:47

ExtjsFlex

2010-08-12 13:59:37

FlexList控件

2010-07-27 15:28:02

Flex DataBi

2010-07-29 13:34:36

Flex樣式

2010-07-27 16:03:42

Flex

2010-08-06 10:03:42

Flex事件

2022-04-15 14:57:57

Flex布局鴻蒙操作系統(tǒng)

2010-08-11 11:17:49

FlexFlash

2010-08-05 08:54:00

Flex優(yōu)勢

2010-08-12 15:20:49

Flex Builde

2010-08-12 09:25:35

Flex控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)