Нажатие клавиши не вызывает KeyboardEvent - PullRequest
1 голос
/ 08 июля 2011

Я запускаю простую игру в понг и создал класс Paddle, который еще ничего не делает. Однако я не думаю, что это работает.

package  
{
    import flash.display.MovieClip;
    import flash.events.KeyboardEvent;
    public class Paddle extends MovieClip
    {
            private var paddleSpeed:int = 4;

            public function Paddle() 
            {
                trace("hello!")
                addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
            }

            public function keyDown(e:KeyboardEvent):void
            {
                trace(e.keyCode);
            }

    }

}

В Main.as я сделал это:

var player:Paddle = new Paddle;
addChild(player);

Когда я запускаю код, я получаю привет !, но когда я нажимаю любую клавишу, ничего не происходит. Я прочитал учебник KeyboardEvent, и я делаю то, что они делают. Спасибо за любую помощь

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Попробуйте добавить прослушиватель событий в stage вместо Paddle.Также, когда вы тестируете ваш проект, убедитесь, что у вас отключены сочетания клавиш.

enter image description here

Что я обычно делаю, так это создаю класс Keyboard с функцией down()что я могу ссылаться на протяжении всего приложения.Его использование будет примерно таким:

if(Keyboard.down(65, 67))
{
    trace("A and/or C are being held down!");
}
2 голосов
/ 08 июля 2011

KeyboardEvent.KEY_DOWN вызывается чем-то в фокусе .Пустой клип не может быть в фокусе.

Надежный способ для вашей ситуации - подписаться на сцену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...