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