AS3中Object與Dictionary的區別

2022-08-10 20:30:16 字數 1424 閱讀 7504

as3中的dictionary類(flash.utils.dictionary)是乙個新的as類。

dictionary類和object唯一的區別在於:

dictionary物件可以使用非字串作為鍵值對的鍵,而object只能使用字串做為鍵值對的鍵。

以下用兩個簡單例子來說明具體的差別:

1、使用object:

使用object

vara:object 

=var

b:object 

=;   

varobj:object 

=new

object();   

obj[a] =1

;        

//鍵為物件a,值為數字1

obj[b] =2

;        

//鍵為物件b,值為數字2

for(

varp:object 

inobj)

輸出結果:

[object object]

2結果分析:

因為前面說了object的鍵只能使用字串,所以當我們使用object來做鍵的時候,都會被轉為[object object],

obj[a] = 1;

obj[b] = 2;

所以在這裡,這兩句**的實際效果是這樣的

obj["[object object]"] = 1;

obj["[object object]"] = 2;

當執行第二句**的時候,實際上就是更新前面乙個的值,所以才輸出這樣的結果也就不奇怪了。

2、使用dictionary:

使用dictionary

vara:object 

=var

b:object 

=;   

varobj:dictionary 

=new

dictionary();   

obj[a] =1

;        

//鍵為物件a,值為數字1

obj[b] =2

;        

//鍵為物件b,值為數字2

for(

varp:object 

inobj)

輸出結果:

[object object]

1135

[object object]

2248

結果分析:

因為dictionary和object的區別所在,可以使用任意型別資料做鍵,所以能得到我們想要的結果。

所在在平時我們使用object或其子類的時候,如果鍵是字串,也可以達到鍵值對的效果,

但當鍵需要object時,就需要dictionary了。

as3中的容器

4種容器 array object vector dictionary 各自特點 array是索引陣列,雖然它也是動態類,可以等同於object來用,但是不建議這樣,因為沒有任何好處。除了鍵上的區別外,array還是善於隨機訪問的,但不知道object和dictionary和它在訪問速度上的區別有多...

AS3與XML 的結合

1b actionscript 3.0系列教程 4 爽快使用xml 1b 為什麼放棄as2.0選擇as3.0?如果只允許我說三個理由。那麼as3.0對xml的近乎完美的支援絕對是其中乙個。1b 簡單說說as3.0中對於xml支援的不同吧 1b as2.0對xml的支援勉勉強強,將就著可以用。而as3...

as3中bitmapData中draw方法重新理解

flash.display.bitmapdata.draw source ibitmapdrawable,matrix matrix null,colortransform colortransform null,blendmode string null,cliprect rectangle nu...