当前位置:  开发笔记 > 编程语言 > 正文

在ActionScript3中,如何获取对象类的引用?

如何解决《在ActionScript3中,如何获取对象类的引用?》经验,为你挑选了2个好方法。

在ActionScript3中,如何获取对象类的引用?



1> Richard Szal..:

值得注意的是,XML对象(XML,XMLList)是一个例外(即.(new XML()as Object).constructor as Class == null).我建议在构造函数不解析时回退到getDefinitionByName(getQualifiedClassName):

function getClass(obj : Object) : Class
{
    var cls : Class = (obj as Class) || (obj.constructor as Class);

    if (cls == null)
    {
        cls = getDefinitionByName(getQualifiedClassName(obj));
    }

    return cls;
}

请注意,如果在调用代码的不同(包括子级)应用程序域中定义了类,则getDefinitionByName将引发错误.



2> hasseg..:

如果您的对象是从类创建的,则可以使用该constructor属性(来自docs:"如果对象是类的实例,则构造函数属性包含对类对象的引用.如果使用构造函数创建对象,constructor属性包含对构造函数的引用."):

var classRef:Class = myObject.constructor as Class;

或者你可以使用flash.utils.getQualifiedClassName()flash.utils.getDefinitionByName()(不是很好的方式,因为这需要在这些库函数的实现中进行不必要的字符串操作):

var classRef:Class = getDefinitionByName(getQualifiedClassName(myObject)) as Class;

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有