Во всех нормальных флэш играх одновременное нажатие кнопки вверх и кнопки влево обрабатывается нормально. Но у меня увы это не выходит.. Буду премного благодарен, если кто-нибудь мне объяснит причину..
Как я делаю:

Код AS3:
package gerich {
import flash.display.MovieClip;
import flash.events.*;
import flash.ui.Keyboard;
dynamic public class Spaceship extends MovieClip {
var speed:Number=1;
public function Spaceship() {
rotation=0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
addEventListener(Event.ENTER_FRAME, Update);
}
public function Update(e : Event):void {
y-=Math.cos(rotation/180*3.14)*speed;
x+=Math.sin(rotation/180*3.14)*speed;
}
//по идее должны отлавливаться все нажатия по очереди
public function KeyDown(e : KeyboardEvent):void {
if(e.keyCode == Keyboard.LEFT){trace("left"); rotation-=1;}
if(e.keyCode == Keyboard.RIGHT){trace("right"); rotation+=1;}
if(e.keyCode == Keyboard.UP){trace("up"); speed+=0.05;}
if(e.keyCode == Keyboard.DOWN)
{
trace("down");
speed-=0.05;
if(speed<0) speed=0;
}
}
}
}
при нажатии кнопки вправо на консоль идёт последовательность:

Код:
right
right
right
right
right
...
потом, не отпуская зажимаю вверх, и кнопка вправо начинает игнорироваться:

Код:
right
right //была нажата вправо
right
up //нажал вверх
up
up
up
up
up
..
а хотелось бы, чтобы я с примерно равными пеиодами времени получал бы и вверх и вправо. как-то так:

Код:
up
right
right
up
right
up
up
right
..
Объясните, если знаете.. спасибо