2013-01-07 40 views
1

我有一个导入外部SWF的Flash动画。 我在外部SWF(WASD移动星形)内部有一些交互操作,并且在容器中(O改变圆形颜色)。 一切适用于Chrome和Firefox,但不适用于Internet Explorer,这让我很头疼。 下面是测试:http://clients.adrime.com/files/campaigns2/9785452187/38177/default.htm 这里容器的交互代码:AS3:键盘输入将无法在Internet Explorer上工作

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; 
} 

那是什么我失踪?

+0

嗨,我在flash.log中收到警告: 警告:引用未声明的变量'_init'。它与你的代码有关吗?还有很多安全沙箱违规。 –

回答

0

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

出于安全原因FLASH永远不会自动对焦 - 否则窃取键盘输入将是一个快照。

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

有一个official Javascript solution。您还可以使用SWFObject嵌入您的Flash内容。

+0

我认为问题不是自动对焦问题,因为点击舞台后它不会工作,为什么? –

+0

我发现问题出在环境页面上,它阻止了我的电影的所有输入。我与网页的所有者交谈,他修复了它。谢谢你一样! –

相关问题