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
编写的,它工作得非常完美。感谢您快速清晰的回复:)