Событие клавиатуры в Action Script 3.0
Создадим новый документ. Для данного примера импортируем в библиотеку какой-нибудь рисунок (Файл - Импорт - Импортировать в библиотеку).
Теперь откроем библиотеку и перенесём экспортируемый рисунок из библиотеки на сцену нашего приложения. Теперь выделим рисунок и преобразуем его в фрагмент ролика. Для этого выделим рисунок и нажмём клавишу F8. Появиться окно - преобразовать в символ. Введём Имя, выберем тип - Фрагмент ролика и нажмём кнопку ОК. В свойствах объекта в строке Имя экземпляра укажем его имя Korablik. Данное имя будет использоваться нами в Action Script.
Теперь создадим слой для Action Script. Выберем на новом слое первый кадр и откроем Окно - Действие (F9) для написания скрипта Action Script. Сразу определим некоторые понятия:
stage - это сцена, на которой находиться кораблик;
addEventListener - "слушатель" событий.
Теперь создадим событие, на которые необходимо будет реагировать на сцене. В нашем случае будет нажатие на клавиатуре на кнопку KEY_DOWN. Напишем следующую команду:
stage.addEventListener(KeyboardEvent.KEY_DOWN, fun); function fun (e:KeyboardEvent):void { korablik.x -=5; }
При таком событии ролик будет реагировать клавиатуру и объект будет перемещатьс влево.
Теперь усложним задачу, мы хотим чтобы объект перемещался влево когда нажата кнопка влево. У нас получилось следующая конструкция:
stage.addEventListener(KeyboardEvent.KEY_DOWN, fun); function fun (e:KeyboardEvent):void { if (e.keyCode == Keyboard.LEFT) { korablik.x -=5; } }
Мы добавили оператор проверки кнопки нажатия на клавиатуре.
Теперь сделаем условия, чтобы по нажатию соответствующих клавиш клавиатуры объект смог перемещаться вверх, вниз, вправо. У нас получился следующий скрипт:
stage.addEventListener(KeyboardEvent.KEY_DOWN, fun); function fun (e:KeyboardEvent):void { if (e.keyCode == Keyboard.LEFT) { korablik.x -=5; } if (e.keyCode == Keyboard.RIGHT) { korablik.x +=5; } if (e.keyCode == Keyboard.DOWN) { korablik.y +=5; } if (e.keyCode == Keyboard.UP) { korablik.y -=5; } }
При тестировании ролика мы можем заметить что при нажатии соответствующих кнопок объект перемещаеться влево, вправо, вверх, вниз. Теперь усложним. Необходимо чтобы при нажатии объект ещё и поворачивался в соответствующую сторону. Добавим объекту свойство Rotation. Каждый поворот прибавляет 90 градусов по часовой стрелки от начального угла в 0 градусов. Получился следующий скрипт:
stage.addEventListener(KeyboardEvent.KEY_DOWN, fun); function fun (e:KeyboardEvent):void { if (e.keyCode == Keyboard.LEFT) { korablik.x -=5; korablik.rotation =0; } if (e.keyCode == Keyboard.RIGHT) { korablik.x +=5; korablik.rotation =180; } if (e.keyCode == Keyboard.DOWN) { korablik.y +=5; korablik.rotation =270; } if (e.keyCode == Keyboard.UP) { korablik.y -=5; korablik.rotation =90; } }
|