Проблемы с прослушиванием события в дочернем объекте в Actionscript - PullRequest
1 голос
/ 21 марта 2010

У меня есть два класса. Первый (стартовый класс):

package
{
 import flash.display.Sprite;
 import flash.events.KeyboardEvent;
 import tetris.*;

 public class TetrisGame extends Sprite
 {

  private var _gameWell:Well;

  public function TetrisGame()
  {    
   _gameWell = new Well();
   addChild(_gameWell);
  } 
 }
}

Второй:

package tetris
{
 import flash.display.Sprite;
 import flash.events.KeyboardEvent;

 public class Well extends Sprite
 {

  public function Well()
  {
   super();

   addEventListener(KeyboardEvent.KEY_DOWN, onKeyboard);
  }

  private function onKeyboard(event:KeyboardEvent):void
  {
   //some code is here
  }


 }
}

Но когда я нажимаю какие-либо кнопки на клавиатуре, дочерний класс Well не реагирует. В чем проблема?

Ответы [ 2 ]

2 голосов
/ 21 марта 2010

ОК, я понял! =))

Я должен установить фокус на дочерний спрайт, чтобы он мог прослушивать события клавиатуры.

package
{
    import flash.display.Sprite;
    import flash.events.KeyboardEvent;
    import tetris.*;

    public class TetrisGame extends Sprite
    {

        private var _gameWell:Well;

        public function TetrisGame()
        {    
            _gameWell = new Well();
            addChild(_gameWell);

            stage.focus = _gameWell;
        } 
    }

}

1 голос
/ 22 марта 2010

или как альтернатива;добавьте слушателя события на сцену, чтобы он не зависел от того, что у Колодца есть фокус

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