我有一部导入外部SWF的flash电影。 我在外部SWF(WASD移动星形)和容器内部有一些交互(O改变圆形颜色)。 一切都适用于Chrome和Firefox,但不适用于Internet Explorer,这让我很头疼。 这是测试:http://clients.adrime.com/files/campaigns2/9785452187/38177/default.htm 这里是CONTAINER交互的代码:
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);
}
这是EXTERNAL 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 :(得分:0)
操作系统和Web浏览器将在Adobe Flash Player或AIR之前处理键盘事件。
出于安全考虑, FLASH永远不会自动对焦 - 否则窃取键盘输入会非常容易。
嵌入在HTML网页中的Flash电影不会收到关键事件 当页面首次加载到Web浏览器中时。
有一个official Javascript solution。您还可以使用SWFObject嵌入Flash内容。