Es una variacion de lo que pusiste vos, pero en vez de declarar N booleanas declara 1 Array.
Con lo que pusiste vos, tu ejemplo seria, no pongo los key up y algunas declaraciones pero se entiende la idea.
Cita: var der:Boolean = false;
avr arriba:Bolean = false;
//etc por cada tecla que quieras computar
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
function keyDown(evt:KeyboardEvent):void{
//Aca hay varias maneras de hacerlo, pero supongamos que vos lo haces asi
if(evt.keyCode == Keyboard.RIGHT){
der = true;
}
function enterFrame(evt:Event):void{
if(der == true && arriba == true){
//ir diagonal (por ejemplo);
}
}
}
Lo que yo cambio seria asi (no estoy poniendo los keyUp y otras cosas)
Cita: var array:Array = [];
stage.addEventListener(KeyboardEvent.KEY_DOWN, teclaPresionada);
addEventListener(Event.ENTER_FRAME, teclas);
function teclaPresionada(evt:KeyboardEvent):void{
array[evt.keyCode] = true;
}
function teclas(evt:Event):void{
if(array[Keyboard.DOWN]==true && array[Keyboard.RIGHT]==true){
trace("dos teclas presionadas");
}
}