反射 (Reflection) 是指在程序在运行时 (run-time) 获取类信息的方式. 诸如实现动态创建类实例, 方法等.
参阅:http://bbs.9ria.com/thread-133293-1-1.html
总结下as3反射的相关用法,主要是四个函数:
flash.system.ApplicationDomain.getDefinition(linkName:String):Class; //flashcs元件库中的某个元件链接名称
flash.utils.getDefinitionByName(name:String):Object; //返回name参数指定的类的类对象引用
如sp:Sprite=new Sprite();
flash.display::Sprite ::前是包 路径
flash.utils.getQualifiedClassName(value:*):String; //返回对象的完全限定类名
flash.utils.getQualifiedSuperClassNameTest; // 返回value参数指定的对象的基类的完全限定类名。
getDefinitionByName
使用方法如下:
获取类 flash.text.TextField 的引用. as 语句是无异常的类型转换. 如果转换失败那么目标变量将被设置成 null
var ClassReference:Class = getDefinitionByName("com.display.TextField") as Class; var instance:TextField = new ClassReference() as TextField; instance.autoSize = "left"; instance.text = "我通过 getDefinitionByName 动态创建";