2011-09-07 65 views
2

,有几种方法可以检查类的扩展。例如,如果我想知道的自定义类的扩展雪碧我可以使用is操作:检查类是否在ActionScript 3.0中实现特定接口

trace(MyClass is Sprite);

或者我可以使用flash.utils.getQualifiedSuperclassName

trace(getQualifiedSuperclassName(MyClass)); 

我愿意接受一个类作为参数并检查传递的类是否实现了某个接口。有没有一种同样简单或常见的方法来检查我的自定义类是否符合接口?也许是这样的:

trace(MyClass implements IMyInterface);

回答

4

为什么不trace(MyClass is IMyInterface);

+1

哦!哈哈。我想我应该尝试过,然后假设它不起作用。谢谢。 – TheDarkIn1978

+1

@TheDarkIn7878无后顾之忧:) – Allan

2

使用这样的功能:

public function isImplementing(MyClass:Class, MyInterface:Class):Boolean 
{ 
    var description:XML = describeType(MyClass); 
    var interfaceName:String = getQualifiedClassName(MyInterface); 
    return Boolean(description.factory.implementsInterface.(@type == interfaceName).length() != 0); 
} 

此功能类是否实现了接口返回true。

+0

艾伦的解决方案不适合我。但是这个呢。 –

相关问题