Flash:KeyboardEvent 按键代码在 Flash Player 中有效,但在浏览器中无效
我使用 ActionScript 来监听按键并路由到处理它们的方法。它在 Flash Player Debugger 10.1 中工作正常,但不适用于浏览器中的 SWF。
我已经尝试过使用各种键:字母、数字等。但我根本无法让它在浏览器中工作。我在 Mac 上使用 Safari 5.1 和 Firefox 3.6.8。
这是我的相关代码:
import flash.events.KeyboardEvent;
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
public function keyPressed(k:KeyboardEvent):void
{
switch(k.keyCode)
{
case(32):
// spacebar
demoTimeline.pause();
break;
case(leftArrow):
// left arrow - 188
demoTimeline.reverse();
break;
case(rightArrow):
// right arrow - 190
demoTimeline.play();
break;
case(191):
// question mark - 191
demoTimeline.restart();
break;
}
}
I'm using ActionScript to listen for key presses and route to a method to handle them. It works fine in Flash Player Debugger 10.1, but does not work with the SWF in a browser.
I've tried it with all sorts of keys: letters, numbers, etc. But I can't get it to work at all in the browser. I'm using Safari 5.1 and Firefox 3.6.8 on the Mac.
Here's my relevant code:
import flash.events.KeyboardEvent;
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
public function keyPressed(k:KeyboardEvent):void
{
switch(k.keyCode)
{
case(32):
// spacebar
demoTimeline.pause();
break;
case(leftArrow):
// left arrow - 188
demoTimeline.reverse();
break;
case(rightArrow):
// right arrow - 190
demoTimeline.play();
break;
case(191):
// question mark - 191
demoTimeline.restart();
break;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SWF 对象需要获得焦点才能接收键盘事件。因此,如果您在浏览器中显示 SWF 时单击它,它应该可以工作。
出于安全原因,当焦点不在 Flash 对象上时(即使它占据整个浏览器窗口),您无法接收键盘输入。
The SWF object needs to have focus to receive the keyboard events. So, if you click on the SWF when it's displayed in a browser, it should work.
For security reasons, you cannot receive keyboard input when the focus is not on the Flash object (even if it takes the whole browser window).