Flex 3:按键组合以触发事件/功能

时间:2011-06-01 14:15:56

标签: flex flex3 keyboard keypress combinations

在特定画布中,我希望用户能够按下将触发事件的键组合。(有点像旧的megadrive游戏中的作弊)。不知道从哪里开始。任何人都知道是否有可能,如果可以,你能给我一个如何开始的线索吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

画布不会发送密钥或按键事件。你可以为它们添加一个监听器;因为关键事件将泡沫化;但它不会单独派遣他们。不幸的是,输入组件(例如textInput)需要关注按键事件以进行调度。

我不是使用画布,组或其他容器,而是使用Spark TextInput使用自定义皮肤制作它,以及键入的文本,基本上不可见。

答案 1 :(得分:2)

可以将eventListener添加到KeyboardEvent.KEY_DOWN事件的顶级应用程序,并检查那里的组合键。来自this article

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
 layout="absolute" creationComplete="init()">
 <mx:Script>
 <![CDATA[
    private function init():void{
     this.addEventListener(MouseEvent.CLICK, clickHandler);
     this.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
    }
    private function clickHandler(event:MouseEvent):void {
      stage.focus = this;
    }
    private function keyPressed(evt:KeyboardEvent):void{
       if(evt.ctrlKey && evt.keyCode == 65)
             trace("CTRL A is pressed");
       if(evt.ctrlKey && evt.keyCode == 66)
             trace("CTRL B is pressed");
   }
 ]]>
 </mx:Script>
</mx:Application>