2

質問自体が私の言いたいことを正確に伝えていない可能性があるため、すぐにコードに飛び込みます。

var myClass:Class;

そして、クラス A を格納する myClass でクラス A を定義しています。

myClass = getDefinitionByName("myPackage.A") as Class;

問題は、myClass がクラス A を格納しているかどうかを確認する方法です。次のスニペットは機能しません。

if(myClass == A){
  Alert.show("equal");
}

この比較が失敗するのはなぜですか?

4

4 に答える 4

3

これを試して:

パッケージ名による比較:

if(getQualifiedClassName(myClass) == getQualifiedClassName(A)){
      Alert.show("equal");
}
于 2012-09-12T06:50:08.930 に答える
2

試す

if(getQualifiedSuperclassName(ClassB) == getQualifiedClassName(ClassA))
{
      Alert.show("equal");
}
于 2012-09-12T09:00:06.790 に答える
1

クラスAとB、およびB extends Aがある場合は、次を使用できます。

var type:String = getQualifiedClassName(A);
for each (var object:Object in describeType(B)..extendsClass) {
    if (type == object.@type.toString())
        trace("Class B instead of A");
}
于 2012-09-12T09:01:44.257 に答える
0

どうですか:

if(myClass is myPackage.A)
{
   Alert.show("equal");
}
于 2012-09-12T06:43:27.297 に答える