Как лучше? вот так:

Код AS3:
private var keypressed:Vector.<uint> = new Vector.<uint>;
private function keyPressed(e:KeyboardEvent):void {
var bool:Boolean = false;
for (var i:uint = 0; i < keypressed.length; i++) {
if (keypressed[i]==e.keyCode) {
bool=true;
}
}
if (!bool) {
keypressed.push(e.keyCode);
}
}
private function keyUnpressed(e:KeyboardEvent):void {
for (var i:uint = 0; i < keypressed.length; i++) {
if (keypressed[i]==e.keyCode) {
keypressed.splice(i,1);
i--;
}
}
}
или вот так:

Код AS3:
private var keyPressed:uint = 0;
private function keyDownHandler(e:KeyboardEvent):void {
switch(e.keyCode) {
case 87: // w
keyPressed |= 1;
break;
case 65: // a
keyPressed |= 2;
break;
case 83: // s
keyPressed |= 4;
break;
case 68: // d
keyPressed |= 8;
break;
}
}
private function keyUpHandler(e:KeyboardEvent):void {
switch(e.keyCode) {
case 87: // w
keyPressed -= 1;
break;
case 65: // a
keyPressed -= 2;
break;
case 83: // s
keyPressed -= 4;
break;
case 68: // d
keyPressed -= 8;
break;
}
}