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

Flash 访问字典中作为值给定的对象方法(AS3),flash,actionscript-3,dictionary,Flash,Actionscript 3,Dictionary,因此,我正在编写一个程序,它使用字典来存储对象。比如说 var dictionary:Dictionary=new Dictionary(); var myObject = new myObject(var1, var2, var3); dicionary["key"]=myObject; 其中,var1、var2和var3只是为myObject中的变量赋值的简单方法 我的问题是,我可以访问myObject中的值或函数吗?在myObject类中,我有一些getter和setter。例如,我可

因此,我正在编写一个程序,它使用
字典
来存储对象。比如说

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

dicionary["key"]=myObject;
其中,
var1
var2
var3
只是为
myObject
中的变量赋值的简单方法

我的问题是,我可以访问
myObject
中的值或函数吗?在
myObject
类中,我有一些getter和setter。例如,我可以使用getter获取
var1
的值吗

dictionary["keys"].getVar1()?
这类事情。

当然,就像

var obj:MyObject = dicionary["key"];
trace( obj.getVar1() );
工作,你可以不用变量,在一行中完成

trace( dicionary["key"].getVar1() );
请注意类型,如果

  • 钥匙不存在
  • 键的值为
    null
  • 键的值属于另一种类型
因此,在直接访问任何方法之前检查这些内容可能是一个好主意


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

var dictObj:Object = [];
dictObj["key"] = myObject;
另一方面,当您需要非字符串对象作为键时,可以使用
字典

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

最后一点注意:类名通常是用
CamelCase

编写的,它工作得非常完美。感谢您快速清晰的回复:)