转载请注明:http://blog.csdn.net/herm_lib/article/details/8500005
AS3的反射功能以前做过一下,过一小段时间就忘记了,查了以前的代码才知道。这次把他记录下来。
反射功能:
根据类型名字,能够生成这个类型的对象;或者
根据某个类型对象,生成新的对象,就是”原型(prototype)"的概念。
像C++这类静态语言,实现反射须要外部支持,因为他语言类型本身不支持完整的运行时类型信息。AS3语言支持这类功能。
AS3中通过,describeType(obj:Object) 和getDefinitionByName(name:String) 就可以实现反射。
1. 获取对象名字
如果我们应用已经知道对象名字,这步就不用做了。
var xml:XML = describeType(data);
objName = xml.@name;
2. 根据名字生成对象
var ObjClass:Class = getDefinitionByName(objName) as Class;
var obj:Object = new ObjClass();
最多就上面两步,就能实现反射了。