Показать сообщение отдельно
Старый 18.04.2014, 00:01
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Зачастую можно применить следующий распространённых подход. Для каждой нужной вам клавиши вы создаёте свою булеву переменную, например для клавиши "вверх";
Код AS3:
var upKey:Boolean=false;
Подписываете сцену на нажатие и отжатие клавиатуры. При нажатии - проверяете какая клавиша была нажата, и если была нажата одна из нужных вам клавиш, то присваиваете переменной значение true, например для клавиши "вверх"
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_DOWN,stage_keyDown);
function stage_keyDown(e:KeyboardEvent):void
{
    if(e.keyCode==38) upKey=true;
}
И та же логика для отжатия клавиш
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_UP, stage_keyUp);
function stage_keyUp(e:KeyboardEvent):void
{
    if(e.keyCode==38) upKey=false;
}
Так вы можете зафиксировать какие клавиши нажаты в данный момент. Теперь подписываетесь на ентерФрейм и проверяете, какие клавиши были нажаты и в зависимости от этого - выполняете нужные вам действия.
Код AS3:
addEventListener(Event.ENTER_FRAME,enterFrame);
function enterFrame(e:Event):void
{
    if(upKey) {
    //подвинуть танк вверх на столько-то пикселей
    }
}