Flex中的mxml继承。如何运作“instanceof”和“是”?

时间:2010-07-05 10:34:46

标签: flex inheritance subclass instanceof

之前我使用了以下结构:

Canvas -> Screen1
Canvas -> Screen2

当我觉得在我的应用程序中需要共同逻辑时,我会做下一步:

Canvas -> Screen
Screen -> Screen1
Screen -> Screen2

所以当我尝试在我的代码中应用它时

if(child is Screen){
    return child.localToGlobal(new Point()).x;
}

这不行! 当我在调试器中看到时,孩子有类型“Screen2”,但是“child is Screen”向我返回false(以及“child instanceof Screen”)。 当我应用编译器密钥时:“-keep-generated-actionscript”我可以看到Screen2-generated.as并且它包含

public class Screen3 extends screens.Screen

提前致谢 对不起我丑陋的英语=)

1 个答案:

答案 0 :(得分:2)

我认为问题在于这个特定的名称 - 已经有一个名为Screen的类(在flash.display - http://livedocs.adobe.com/flex/3/langref/flash/display/Screen.html中),Flex会检查它是否是原始屏幕的实例。

您可以尝试两件事:

1)将Screen类重命名为CustomScreen并再次尝试。

2)通过引用完整路径来检查孩子是否是您班级的实例,例如。 if (child is screens.Screen)