2

我用 Flex 编写了一个在浏览器中运行的小视频游戏。玩家通过按下键盘上的箭头按钮移动,所以我需要捕捉这些击键。事实上,当玩家按下其中一个键时,游戏动作就开始了。

为了捕捉击键,Flash/Flex 应用程序,而不仅仅是浏览器,需要有焦点。

如何确保应用程序具有焦点?我已经实现了一些技巧:必须单击“开始”按钮才能开始游戏。此按钮的唯一目的是确保应用程序具有焦点。有没有更好的解决方案?

4

3 回答 3

2

不,这是唯一的方法,但我认为您目前的解决方案是一个很好的解决方案。您(作为用户)必须单击以聚焦的原因是,应用程序不能悄悄地窃取焦点,然后在您不知情的情况下记录击键,例如窃取密码。

于 2010-01-01T21:58:24.853 回答
1

在某些浏览器 (IE) 中,您可以通过 JavaScript 赋予 SWF 焦点。不幸的是,这在 Firefox 中不起作用。因此,一些用户将不得不单击 SWF 以使其获得焦点。你可以很容易地在你的游戏中检查浏览器,如果它是 IE,然后自动给 SWF 焦点而不显示“开始”按钮。然后在 Firefox 中显示“开始”按钮。

于 2010-01-01T22:16:30.900 回答
0

看看下面的链接。对我来说效果很好。

http://www.flexjunk.com/2010/12/30/managing-initial-swf-focus-in-all-browsers/

于 2012-04-20T11:37:51.217 回答