2014-07-15 65 views
1

我幾乎完成了一個工程實習,一個團隊和我被分配了一個涉及硬件和編程的項目。我們的項目是一個老式的街機箱塔防遊戲,主題爲「阻止全球變暖」。AS3:Key Press點擊塔樓

在完成了一個很好的教程之後,我們完成了我們的遊戲,除了一件事:在教程的遊戲中,您通過用鼠標單擊按鈕來選擇一個塔,但出於我們的目的,我們需要它,以便用戶按下鍵盤按鈕來選擇塔(當您按下街機框上的按鈕並按下某個鍵時,我們已經知道了)。

以下是我認爲包含需要更改的代碼的代碼部分。我試着擺弄KeyboardEvent.KEY_DOWN,但無濟於事。

如果上面的所有內容都沒有意義,我需要讓事件監聽器監聽要按下的「w」鍵,然後選擇Fire Tower。

setupGame(); 

// Initialise the UI event listeners. 
mcGameUI.btnBuildFireTower.addEventListener(KeyboardEvent.KEY_DOWN, clickTowerFire); 
mcGameUI.btnBuildFireTower.addEventListener(MouseEvent.ROLL_OVER, showTowerFireHelp); 
mcGameUI.btnBuildFireTower.addEventListener(MouseEvent.ROLL_OUT, clearHelp); 

謝謝!!!!

回答

1

需要在焦點對象上監聽鍵盤事件。幸運的是,stage總是有焦點,所以最好將鍵盤事件監聽器連接到那裏。

stage.addEventListener(KeyboardEvent.KEY_DOWN, clickTowerFire); 

如果要基於特定的按鍵添加操作,您可以使用連接到KeyboardEventkeyCode屬性:

function clickTowerFire(event:KeyboardEvent):void 
{ 
    if(event.keyCode === 87) // W 
    { 
     // Your existing code here. 
    } 
} 
+0

謝謝,但我將如何使它所以它選擇當按下「w」鍵時? – Jack

+0

@ user3427093您需要在'clickTowerFire'函數中添加它。我會用一個例子更新我的答案。 – Marty

+0

這工作完美!謝謝!!!!! – Jack