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