微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AS3-查找子类的基类

如何解决AS3-查找子类的基类

| 我有一个程序,其中有多个从基类派生的类。我想获取不同子类的所有实例,并将它们放入数组中。有没有一种方法可以搜索从基类派生的任何内容? 例如,现在获取孩子的数量,然后查看孩子的数量,因此:
for (var i = 0; i < this.getNumChildren(); i++)
{
    if (i is \"type\")
        objectArray.push(i);
}
类型在哪里,我需要它引用实例的基类而不是创建实例的子类。     

解决方法

\“ Object is Type \”将对子类和BaseClass都返回true: 例:
for (var i = 0; i < this.getNumChildren(); i++) {
    var c:* = this.getChildAt(i);
    if ( c is BaseClass ) {
        //true for both SubClass1 and SubClass2 instances
        objectArray.push(c);
        if ( c is SubClass1 ) {

        }
        else if ( c is SubClass2 ) {

        }
    }
}
    ,我正在猜测您要问的问题:假设您已经在B类中获得了此代码,该代码扩展了A类,而您想要的是B类型的实例以找出其含义在运行时,自己的超类是(类A)。 这是您可以执行的操作:
// Get the name of the super class for this object
var superClassName:String = flash.utils.getQualifiedSuperclassName(this);

// Get a Class reference to that superclass
var superClass:Class = flash.utils.getDefinitionByName(superClassName) as Class;
在表达式中使用superClass代替\“ type \”。这将允许类型B的实例查找具有祖先类型A的所有对象。 这是你在问的吗?如果没有,请澄清。我不清楚您是要问如何获取基类,还是只是误解了is运算符的工作原理。如果您在编写时知道超类名称,为什么不只用它代替“类型”呢?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。