Flex 3: комбинация нажатий клавиш для запуска события / функции - PullRequest
1 голос
/ 01 июня 2011

В пределах определенного холста я хотел бы, чтобы пользователь мог нажимать комбинацию клавиш, которая вызовет событие (немного похоже на чит в старой мегаприводной игре). Не уверен, с чего начать, хотя. Кто-нибудь знает, возможно ли это, и если да, то можете ли вы дать мне подсказку, как начать?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 01 июня 2011

Вы можете добавить EventListener в приложение верхнего уровня для события KeyboardEvent.KEY_DOWN и проверить там комбинации клавиш.С этой статьи :

<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>
2 голосов
/ 01 июня 2011

Canvas не отправляет события key up или key down.Вы можете добавить слушателя к ним;как ключевые события будут пузыриться;но он не отправит их в одиночку.К сожалению, компонент ввода, такой как textInput, должен иметь фокус для отправки событий нажатия клавиши.

Вместо использования холста, группы или другого контейнера, я бы рассмотрел использование Spark TextInput с настроенным скином, который делает его, и напечатанный текст практически невидимым.

...