如何在ActionScript 3中正确测试类继承?

jmd*_*mbe 5 class actionscript-3

在ActionScript 3中,您可以确定对象O是C类还是使用...扩展或实现C类(直接或间接)的类

if (O is C) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是测试类CC是否扩展或实现类C(直接或间接),而不必实例化对象.

在Java中,你会使用...

if (C.isAssignableFrom (CC)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

http://java.sun.com/javase/6/docs/api/java/lang/Class.html#isAssignableFrom(java.lang.Class)

ActionScript 3怎么样?

谢谢!

小智 3

您可以直接在CC上调用describeType()。您不必实例化该对象。

var typeXML:XML = describeType(CC);
if(typeXML.factory.extendsClass.(@type=="C").length() > 0)
{
...
Run Code Online (Sandbox Code Playgroud)

它不像我想要的那么干净,但我找不到更好的了。

(通过阿玛戈什:[ http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html#describeType()][1]