Есть ли способ добавить keyboardevent в гибкое приложение верхнего уровня? - PullRequest
0 голосов
/ 07 марта 2011

Я загружаю изображение в свое гибкое приложение и пытаюсь переместить изображение с помощью клавиатуры.Я добавил слушатель событий в приложение, но изображение не будет двигаться.Как получить, чтобы приложение верхнего уровня flex 4 могло использовать прослушиватель клавиатуры.Единственный возможный способ выяснить, как заставить слушателя событий клавиатуры работать, это добавить в текстовое поле.

<?xml version="1.0" encoding="utf-8"?>

<fx:Declarations>

</fx:Declarations>

<s:creationComplete>
    <![CDATA[
        //this.addEventListener(MouseEvent.MOUSE_MOVE, movePlayer);
        this.addEventListener(KeyboardEvent.KEY_DOWN, movePlayerKeys);
    ]]>
</s:creationComplete>


<fx:Script>
    <![CDATA[
        import mx.core.FlexGlobals;
        private function movePlayer(e:MouseEvent): void {
            trace("Moving mouse",e.localX, e.localY);

        }

        private function movePlayerKeys(e:KeyboardEvent): void {
            trace("key pressed:",e.charCode);
            // add controls class here.
        }
    ]]>
</fx:Script>

<player:Player id="player" x="10" y="10"/>

Примите во внимание, что я даже не отслеживаю событие клавиатуры.

1 Ответ

0 голосов
/ 07 марта 2011

Используйте stage для добавления слушателей клавиатуры, это работает (если, конечно, приложение имеет фокус)

...