2011-11-17 48 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

它准确无误地运行。感谢您的快速和明确的回应:) –