2013-02-04 69 views
1

我有一個Flash電影我正在做一個搜索框和一個搜索按鈕。該按鈕有這樣的代碼:on(keyPress「」)在AS2不起作用

on (release, keyPress "<Enter>") { 
    searchbox.execute();  
    /*the function above processes searches*/ 
} 

點擊按鈕的作品就好了。按Enter鍵不會做豆!有誰知道這是爲什麼,以及我可以解決它的任何方式?如果我完全可以避免使用,我寧願不使用監聽器。

回答

3

使用on()是不推薦的AS1練習,所以也許你應該停止使用它。感謝MovieClip類的onKeyDown事件處理程序,可以使用正確的代碼在沒有偵聽器的情況下執行它,因此您不必擔心它們。 ;)

無論如何,與代碼。在包含按鈕的時間軸中輸入以下內容:

//Enable focus for and set focus to your button 
searchButton.focusEnabled = true; 
Selection.setFocus(searchButton); 

//The onRelease handler for the button 
searchButton.onRelease = function(){ 
    //You need this._parent this code belongs to the button 
    this._parent.searchbox.execute(); 
} 

//The onKeyDown handler for the button 
searchButton.onKeyDown = function(){ 
    //Key.getCode() returns the key code of the last key press 
    //Key.ENTER is a constant equal to the key code of the enter key 
    if(Key.getCode() == Key.ENTER){ 
     this._parent.searchbox.execute(); 
    } 
} 
+0

謝謝!我一直認爲onKeyDown的效率低於(keyPress),因爲它觸發了每一個鍵,這就是爲什麼我不願意使用它 - 但你的解決方案的工作原理。謝謝! – SoItBegins