【问题标题】:Flash: KeyboardEvent keycodes work in Flash Player, but not the browserFlash:KeyboardEvent 键码在 Flash Player 中有效,但在浏览器中无效
【发布时间】:2011-08-25 17:20:31
【问题描述】:

我正在使用 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;
        }
    }

【问题讨论】:

  • 能否发布用于在页面中嵌入 SWF 的 HTML/JS?
  • 我只是通过 Flash CS5 的设置发布 HTML。我不是自定义编写任何东西或自己使用 SWFObject 或类似的东西。

标签: flash firefox safari keyboard keycode


【解决方案1】:

SWF 对象需要获得焦点才能接收键盘事件。因此,如果您在 SWF 显示在浏览器中时单击它,它应该可以工作。

出于安全原因,当焦点不在 Flash 对象上时(即使它占用整个浏览器窗口),您将无法接收键盘输入。

【讨论】:

  • 有趣:在 Safari 中单击 SWF 并不能使其工作,在 Firefox 中只能部分工作(箭头键有效,但空格键无效)。
猜你喜欢
  • 2020-11-10
  • 2012-09-21
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多