2011-09-07 58 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

艾倫的解決方案不適合我。但是這個呢。 –

相關問題