Flex将类对象与类进行比较

时间:2012-09-12 06:36:46

标签: actionscript-3 flex class

问题本身可能无法准确表达我的意思,所以我会很快跳到代码中。

var myClass:Class;

我的A类定义了myClass,存储了A类。

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

问题是如何验证myClass是否存储了A类。以下代码段不起作用。

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

为什么这种比较会失败?

4 个答案:

答案 0 :(得分:3)

试试这个:

按包名比较:

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

答案 1 :(得分:2)

尝试

if(getQualifiedSuperclassName(ClassB) == getQualifiedClassName(ClassA))
{
      Alert.show("equal");
}

答案 2 :(得分: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");
}

答案 3 :(得分:0)

怎么样:

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