类型的AS3测试

时间:2011-07-19 16:15:56

标签: flash flex actionscript-3

我有一个函数,它给了我传入的对象的类类型。

public function getClass(obj:Object):Class {
return Class(getDefinitionByName(getQualifiedClassName(obj)));
}

现在,如果我这样做

trace(getClass(panelStack[0]));

我在输出窗口中得到[类InfoPanel]是正确的

但如果我这样做

trace(getClass(panelStack[0]) is InfoPanel);

我弄错了,但我期待是真的。

有人可以指出我在这里做错了什么。我正要把头发的最后部分撕掉!!!

谢谢,

标记

2 个答案:

答案 0 :(得分:10)

你几乎就在那里,只需删除getClass()电话。试试这个:

trace(panelStack[0] is InfoPanel);

is运算符可以与任何变量或表达式一起使用,以确定它是否是特定数据类型的成员。当您调用getClass()时,您实际上是针对完全不同的实例进行测试。

答案 1 :(得分:6)

您不应该使用is,而应使用==;)

因为getClass(panelStack[0]) is Class