访问在字典(AS3)中作为值给出的对象方法

时间:2011-11-17 10:11:51

标签: flash actionscript-3 dictionary

所以我正在编写一个使用Dictionary来存储对象的程序。例如

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

dicionary["key"]=myObject;

其中var1var2var3只是为myObject中的变量赋值的方法。

我的问题是,我可以访问myObject中找到的值或函数吗?在myObject课程中,我有一些吸气剂和二传手。我可以使用getter来获取var1的值。

dictionary["keys"].getVar1()?

有点儿。

1 个答案:

答案 0 :(得分:2)

当然,就像

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

工作,你可以在没有变量的情况下一行完成。

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

只要注意类型,如果

,您将收到错误
  • 密钥不存在
  • 密钥的值为null
  • 密钥的值是另一种类型

因此,在直接访问任何方法之前检查这些内容可能是个好主意。


但是,如果您使用字符串,则通常的Object是常用解决方案。它作为一个关联数组工作:

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

另一方面,当您需要非字符串对象作为键时,使用Dictionary

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

最后一点:类名通常用CamelCase

编写