如何获取类的所有子类(在AS3中)

时间:2011-09-01 06:54:09

标签: flash actionscript-3 reflection

这有点奇怪,但我需要知道特定类的所有子类。所以假设我有一个名为Shape的基类和实现它的3个子类(Circle,Triangle和Rectangle)。我想要这样的东西:

public function getSubclasses(aClass : Class) : Vector.<Class>
{
    //???
}

返回包含Circle,Triangle和Rectangle的向量。

我很遗憾不能指望每个子类在调用该函数之前至少实例化一次。

目前我需要手动将类添加到列表中,但这很容易出错(如果我忘了),也不像上面提到的函数那样通用(因为我需要为每个列表创建一个新列表) class我想要的子类。

谢谢!

2 个答案:

答案 0 :(得分:3)

Flash中没有内置功能。您可以使用反射来获取类的基类,但不能反过来(参见flash.utils.describeType())。

答案 1 :(得分:2)

@Laurent是对的。为了更进一步,我会说这根本不可能。如果你有一个课程,你可以告诉他们是否是另一个人的孩子(通过实例化)但是没有办法在AS3中列出可用的课程。