AS3动态获得类名及类的方法

电介质 发布于 2009年06月12日 星期五 4:19 下午 2 条评论 »

获得某个实例对象的类:

实例名["constructor"];

实例名.constructor;

获得某个实例对象的类名:

getQualifiedClassName (对象实例名)

进一步解释如下

getQualifiedClassName (value:*)

参数value手册上说:可以将任何 ActionScript 值传递给此方法,包括所有可用的 ActionScript 类型、对象实例、原始类型(如 uint)和类对象。示例如下:

trace(getQualifiedClassName(“abc”));   //输出 String

trace(getQualifiedClassName(1));     //输出 int

trace(getQualifiedClassName(int));     //输出 int
trace(getQualifiedClassName(Sprite)); //输出 flash.display::Sprite
trace(getQualifiedClassName(自定义的类));//输出 带包路径的自定义类,类似上句输出,如果是在根包,或fla的库里定义的类,则因为在根路径则直接输出自定义类名,类似ActionScript的原始类型
trace(getQualifiedClassName(对象实例名));//参数可以是任何实例名,包括自定义类的实例,输出同上
trace(getQualifiedClassName(方法或函数名));//输出类似Function-20,builtin.as$0::MethodClosure

根据类名获得类:

getDefinitionByName(完全限定类名称的字符串表达式);

注意,这里的类名称需要有包路径的限定,如”flash.display.Sprite”,也可以这样写”flash.display::Sprite”,自定义的类也一样,当然如果自定义的类在根包,或是在fla的库里定义的类,或者是ActionScript的原始类型,则可以直接写类名字符串。

用得到的类实例化对象:

一般中间要用一个无类型变量传递类,进行实例化;

如:

var i=0;

var c:*=getDefinitionByName(“MyClass”+i);

var myClass:*=new c();



此文 AS3动态获得类名及类的方法 首发在:魔力谷-flash风 作者:电介质

版权所有,欢迎转载,转载请注明作者和出处!

文章分类: AS3

Trackback地址: http://flash.moligu.com/98/trackback

对《AS3动态获得类名及类的方法》有 2 条评论

  1. 波涛汹涌 ,

    请问要是静态方法如何得到类名。

  2. 电介质 ,

    不好意思,不是很清楚你的意思,能详细说下吗?

发表评论