之前我使用了以下结构:
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
提前致谢 对不起我丑陋的英语=)
答案 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)