醒着☆☆

H5 Laya Native Game

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

反射 (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 动态创建";

 

posted on 2012-12-07 15:16  醒着/☆☆  阅读(459)  评论(0编辑  收藏  举报