2013-01-07 73 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

我發現問題出在環境頁面上,它阻止了我的電影的所有輸入。我與網頁的所有者交談,他修復了它。謝謝你一樣! –

相關問題