Управление клавиатурой:
1) в начале добавляешь слушателей событий addEventListener(Event.ENTER_FRAME, enterFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
2) AS3 реагирует только на действие клавиш "нажать"/"отпустить", но он не запоминает уже нажатых клавиш, поэтому придётся его "научить" запоминать их. Создадим "булевые" (да/нет) переменные:
var left:Boolean = false;
var right:Boolean = false;
var up:Boolean = false;
var down:Boolean = false;
3) Теперь создадим функции для слушателей keyUp и keyDown.
function keyDown(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT) left = true;
else if(e.keyCode == Keyboard.RIGHT) right = true;
else if(e.keyCode == Keyboard.UP) up = true;
else if(e.keyCode == Keyboard.DOWN) down = true; }
function keyUp(e:KeyboardEvent):void
{
if(e.keyCode == Keyboard.LEFT) left = false;
else if(e.keyCode == Keyboard.RIGHT) right = false;
else if(e.keyCode == Keyboard.UP) up = false;
else if(e.keyCode == Keyboard.DOWN) down = false;
}
Опишу логику, чтобы было понятно:
Если(код клавиши = клавиша влево) left = истина; иначе если(код клавиши = клавиша вправо) right = истина; иначе если(код клавиши = клавиша вверх) up = истина; иначе если(код клавиши = клавиша вниз) down= истина;
Для функции отжатой клавиши аналогично только, переменным присваивается значение false(ложь).
4) Теперь создаёшь функцию каждого кадра enterFrame и говоришь ей что делать если та или иная клавиша нажата. Допустим ты создал машину с "именем экземпляра" (во вкладке "свойства") : CAR. Тогда:
function enterFrame(e:Event):void
{ if(left){
CAR.x -= 5;
}
if(right){
CAR.x += 5;
}
if(up){
CAR.y -= 5;
}
if(down){
CAR.y += 5;
}
5) Чтобы твоя машина смотрела в сторону курсора (ыыыыыы ) надо добавить в функцию каждого кадра следующее:
function everFrame(e:Event):void
{
CAR.rotation = (Math.atan2(mouseY - CAR.y,mouseX - CAR.x) * 180) / Math.PI ;
}
Примечание:
1) "5" - это фактически скорость, можешь задать ей какой-либо переменной.
2) координата Х направлена вправо, Y вниз.
3) если хочешь использовать другие клавиши клавиатуры то нужно знать их код, узнать его можно так:
function keyDown(e:KeyboardEvent):void
{
trace(e.keyCode);
}
В строке вывода сообщение тебе выведется число (код клавиши), его засунешь в условия if(e.keyCode == 87) //87 - код клавиши W
4) Есть немного другие способы движения, более реалистичные: например изменять координату через угол поворота и с ускорением.
5) Советую посмотреть сайт easyflash.org там есть бесплатные видео-уроки по этому поводу.