2010-01-22 87 views
0

我有一個簡單的Flash電影,下面的代碼。我們的想法是移動從一幀到下一個或回用鍵盤上的箭頭鍵:Actionscript 3.0:鍵盤事件和遠程主持人

stop(); 

//listen for key press 
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown); 

//if left or right arrow, go to previous or next frame 
function myKeyDown(e:KeyboardEvent):void { 

switch (e.keyCode) { 
case Keyboard.LEFT : 
prevFrame(); 
break; 

case Keyboard.RIGHT : 
nextFrame(); 
break; 
} 
} 

所以,這個工作得很好,但我需要使用一個Kensington演示,遠程控制鍵盤。它應該發送一個keydown命令到計算機的右或左箭頭鍵,但它不起作用。

它使用類似的語法在我有的舊版Director項目上工作。也適用於PowerPoint。

任何想法將不勝感激。我在Mac上工作,但電影將作爲編譯的應用程序在Windows和Mac平臺上運行。

+4

嘗試跟蹤處理程序接收到密鑰代碼當你按下遙控器上的按鈕。 – 2010-01-22 01:24:42

+1

與匿名一樣的建議。在您的myKeyDown事件處理程序中跟蹤e.keyCode。看看你是否得到任何輸出。 – sberry 2010-01-22 01:54:56

+2

另一個問題可能是您的應用程序失去了重點,從而錯過了關鍵事件。您可以使用計時器每隔幾秒重新獲得焦點來解決此問題。 – ZackBeNimble 2010-01-22 05:11:46

回答

0

如果沒有拋出一個錯誤,你必須集中階段,寫事件偵聽器下方

stage.focus = this; 
stage.focusRect = false; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown); 


function myKeyDown(e:KeyboardEvent):void { 

switch (e.keyCode) { 

case Keyboard.LEFT : 

this.currentFrame++; 

break; 

case Keyboard.RIGHT : 

this.currentFrame--; 

break; 
} 

}