Я пытался создать танковую игру, в которой я мог бы перемещать танки, позволять им стрелять друг в друга и т. Д. Я настаиваю на создании внешних классов с помощью Flash Pro, потому что я привык к языку ООП, как Java. Я создал класс Tank, который представляет все танки. Вот код этого класса:
package src
{
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class Tank extends MovieClip
{
public function Tank():void {
this.addEventListener(KeyboardEvent.KEY_DOWN, move);
this.addEventListener(MouseEvent.CLICK, test);
}
protected function move(event:KeyboardEvent):void {
trace("key down");
switch (event.keyCode) {
case Keyboard.UP: {
this.y += -5;
break;
}
case 40: {
this.y += 5;
break;
}
case Keyboard.LEFT: {
this.x += -5;
break;
}
case Keyboard.RIGHT: {
this.x += 5;
break;
}
}
}
}
}
Проблема в том, что слушатель действия никогда не вызывается, когда я нажимаю какие-либо клавиши. trace () не вызывается. Но я попытался добавить слушателя мыши только для проверки, и это сработало. Итак, я думаю, это проблема класса слушателя событий клавиатуры? Каждый, кого я вижу в Интернете, использует подход stage.addEventListener (KeyboardEvent.KEY_DOWN, move).
Может кто-нибудь сказать мне, почему он не работает? И есть ли какие-то решения? (Только добавляя внешние классы, пожалуйста) Спасибо!