Actionscript 3 Flash“wMode”,AS3,箭头键重点介绍Internet Explorer、堆叠顺序和可能的解决方案

Actionscript 3 Flash“wMode”,AS3,箭头键重点介绍Internet Explorer、堆叠顺序和可能的解决方案,actionscript-3,internet-explorer,focus,wmode,Actionscript 3,Internet Explorer,Focus,Wmode,当“wmode”处于激活状态且用户正在玩需要箭头键的Flash游戏时,Internet Explorer上的浏览器窗口也会移动。看起来,解决这个问题的唯一方法是删除“wmode”。但是,如果删除了“wmode”,Flash游戏将上升到堆叠顺序的顶部,所有其他元素(如可扩展横幅或下拉菜单)都将位于Flash后面。再多的iframe或CSS也解决不了这个问题 我已经找到了一个解决方案,它可以保留“wmode”,同时还可以使Flash游戏在点击后具有键盘焦点,因此Internet Explorer浏览

当“wmode”处于激活状态且用户正在玩需要箭头键的Flash游戏时,Internet Explorer上的浏览器窗口也会移动。看起来,解决这个问题的唯一方法是删除“wmode”。但是,如果删除了“wmode”,Flash游戏将上升到堆叠顺序的顶部,所有其他元素(如可扩展横幅或下拉菜单)都将位于Flash后面。再多的iframe或CSS也解决不了这个问题

我已经找到了一个解决方案,它可以保留“wmode”,同时还可以使Flash游戏在点击后具有键盘焦点,因此Internet Explorer浏览器窗口不会移动。此解决方案意味着其他Dom元素可以位于Flash之上

我已经把下面的AS3代码放到了一个简单的示例中,它似乎可以工作。它基本上在内容中放置一个滚动窗格,然后使其不可见

作为一名PHP开发人员而不是AS3开发人员,我的问题是——任何AS3开发人员都能看到将下面的代码放入基于Flash/AS3构建的游戏中的问题或有害影响吗。这在AS2中同样有效吗

非常感谢

_scrollPane = new ScrollPane();
_scrollPane.setSize(stage.stageWidth, stage.stageHeight);
_scrollPane.horizontalScrollPolicy = ScrollPolicy.OFF;
_scrollPane.verticalScrollPolicy = ScrollPolicy.OFF;
_scrollPane.alpha=0;
stage.addChild(_scrollPane);

经过更多的测试,这似乎不是一个现实可行的选择。尽管swf文件在单击后会获得焦点,并且需要箭头键控制的精灵可以在不影响浏览器窗口的情况下移动,但由于滚动窗格的子索引,无法单击或拖动与精灵的交互

我一直在玩弄IE10的预发布版本,无论wMode处于何种状态或被删除,浏览器窗口仍然会受到与swf的箭头键交互的影响。
如果其他人遇到这个问题或找到了答案,我们将不胜感激。

这感觉不像是一个答案,所以请放在这里:我喜欢你的解决方案。我在实现键盘导航时遇到了类似的问题,但从未解决过。我认为这在AS2中不起作用。我能看到的唯一不利之处是在屏幕上添加了不可见的UI元素,但由于它们解决了问题,因此没有任何不利的唯一好处:感谢Sunil,我同意添加一个不可见的UI组件可能会消除不利影响,但它确实启用了箭头键控制,同时确保堆叠顺序保留在Dom中。我还没有测试的是滚动窗格是否会妨碍鼠标与电影剪辑的交互。需要注意的一点是,一旦访问了不同的浏览器选项卡,焦点就会丢失,然后用户会返回到原来的浏览器选项卡。只能通过重新加载页面来重新获取。这显然对游戏中的某个人来说真的很烦人。然而,经过一段时间的研究和测试,这是解决Internet Explorer中两个问题的唯一解决方案。感谢您的意见并欢迎更多:-