1

我有一个导入外部 SWF 的 Flash 电影。我在外部 SWF(WASD 移动星星)和容器中(O 更改圆圈颜色)有一些交互。一切都可以在 Chrome 和 Firefox 上运行,但不能在 Internet Explorer 上运行,这让我很头疼。这里是测试:http ://clients.adrime.com/files/campaigns2/9785452187/38177/default.htm 这里是容器交互的代码:

stage.focus = stage;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onoff);
function onoff(e:KeyboardEvent):void
{
    if(e.keyCode == 79) //O
        bulb.gotoAndStop(bulb.currentFrame == 1 ? 2 : 1);
}

这是外部 SWF 之一:

this.addEventListener(Event.ADDED_TO_STAGE, added);

function added(e:Event):void
{
    stage.addEventListener(KeyboardEvent.KEY_DOWN, tastiera);
}

function tastiera(e:KeyboardEvent):void
{
    if(e.keyCode == Keyboard.A)
        st.x -= 5;
    else if(e.keyCode == Keyboard.D)
        st.x += 5;
    else if(e.keyCode == Keyboard.W)
        st.y -= 5;
    else if(e.keyCode == Keyboard.S)
        st.y += 5;
}

我错过了什么?

4

1 回答 1

0

操作系统和 Web 浏览器将在 Adob​​e Flash Player 或 AIR 之前处理键盘事件。

出于安全原因,FLASH 永远不会自动对焦- 否则窃取键盘输入将是一件轻而易举的事。

当页面首次在 Web 浏览器中加载时,嵌入在 HTML 页面中的 Flash 影片不会接收关键事件。

有一个官方的 Javascript 解决方案。您还可以使用SWFObject嵌入您的 Flash 内容。

于 2013-01-07T12:46:14.167 回答