2011-07-08 35 views
1

我開始了一個簡單的pong遊戲,我創建了一個Paddle類,它什麼都沒做。但是,我認爲它不起作用。Key press not triggering KeyboardEvent

package 
{ 
    import flash.display.MovieClip; 
    import flash.events.KeyboardEvent; 
    public class Paddle extends MovieClip 
    { 
      private var paddleSpeed:int = 4; 

      public function Paddle() 
      { 
       trace("hello!") 
       addEventListener(KeyboardEvent.KEY_DOWN, keyDown); 
      } 

      public function keyDown(e:KeyboardEvent):void 
      { 
       trace(e.keyCode); 
      } 

    } 

} 

在Main.as我已經做到了這一點:

var player:Paddle = new Paddle; 
addChild(player); 

當我運行代碼,我得到你好!可是當我按任意鍵沒有任何反應。我讀過一個KeyboardEvent教程,我正在做他們正在做的事情。感謝您的任何幫助

回答

2

嘗試添加事件偵聽器到stage而不是Paddle。另外,當你測試你的項目時,確保你禁用了鍵盤快捷鍵。

enter image description here

我其實常做的是使一個Keyboard類,我可以在整個應用程序中引用一個down()功能。它的用途是這樣的:

if(Keyboard.down(65, 67)) 
{ 
    trace("A and/or C are being held down!"); 
} 
2

KeyboardEvent.KEY_DOWN是由焦點觸發。空剪輯無法對焦。

您的情況的可靠方法是訂閱階段。

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);