2011-08-27 47 views

回答

2

你實際上可以...但在你需要定義stage.focus之前,你想要監聽KeyboardEvent.KEY_DOWN事件的對象。

stage.focus = this 
this.addEventListener(KeyboardEvent.KEY_DOWN, someFunc); 

as3 reference guide你可以看到更多信息有關的KeyboardEvent:

要全局偵聽按鍵事件,聽在舞臺捕獲和目標階段或冒泡階段。

text_tf.addEventListener(KeyboardEvent.KEY_DOWN, someFunc); 

希望這澄清了您的疑問:

,如果你想監聽例如文本字段中的KeyboardEvent這是非常有用的。

0

我在使用Flex和Actionscript3的Flashbuilder 4.6中遇到了這個問題。我只是發佈這個以防其他人想要替代解決方案,因爲這種解決方案對我來說並不適用。

這是我做過什麼:

public class CoreContainer extends Canvas implements IFocusManagerContainer, IFocusManagerComponent 
{ 
    private var _focus:FocusManager = new FocusManager(this as IFocusManagerContainer); 

    public function CoreContainer() 
    { 
     ... 
     this._focus.setFocus(this); 
     this.addEventListener(KeyboardEvent.KEY_DOWN, this.handleKeyDown); 
     ... 
    } 

    private function handleKeyDown(event:KeyboardEvent):void 
    { 
     KeyboardShortcuts.handleKeyDown(event); 
    } 
} 

基本上我做了同樣的事情,作爲一個 - 米,但因爲我不能彎曲我即興訪問階段作爲一個全局變量,所以我可以訪問它爲這個特定的類。

相關問題