2011-11-17 47 views
0

因此,我正在編寫一個程序,它使用Dictionary來存儲對象。例如訪問對象方法作爲字典中的值(AS3)

var dictionary:Dictionary=new Dictionary(); 
var myObject = new myObject(var1, var2, var3); 

dicionary["key"]=myObject; 

其中var1var2,和var3是僅僅意味着在myObject賦值給變量。

我的問題是,我可以訪問在myObject中找到的值或函數嗎?在myObject班,我有一些getters和setter。例如,我可以使用getter來獲取var1的值。

dictionary["keys"].getVar1()? 

這種事情。

回答

2

當然,正如

var obj:MyObject = dicionary["key"]; 
trace(obj.getVar1()); 

的作品,你可以做到這一點沒有變,在一個單一的線。

trace(dicionary["key"].getVar1()); 

只需提防的類型,你會得到,如果

  • 鍵不爲關鍵存在
  • 值誤差爲null
  • 該鍵的值是另一種類型

因此,在訪問任何方法之前檢查這些東西可能是一個好主意direc TLY。


但是,如果您使用的是字符串,常見的Object是常用的解決方案。它可以作爲一個關聯數組:

var dictObj:Object = []; 
dictObj["key"] = myObject; 

在另一方面,Dictionary當你需要非字符串對象作爲鍵使用。最後

var dictionary:Dictionary= new Dictionary(); 
var key:MyKeyObject = new MyKeyObject(); 
dictionary[key] = myObject; 

一注:類名稱通常寫在CamelCase

+0

它準確無誤地運行。感謝您的快速和明確的迴應:) –