2011-08-27 16 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); 
    } 
} 

基本上我做了同样的事情,作为一个 - 米,但因为我不能弯曲我即兴访问阶段作为一个全局变量,所以我可以访问它为这个特定的类。

相关问题