Código ActionScript :
_stageRef.stage.addEventListener( KeyboardEvent.KEY_DOWN, _keyHandlerDown, false, int.MAX_VALUE); //Setting max-1 so this be after _stageRef.stage.addEventListener( KeyboardEvent.KEY_UP, _keyHandlerUp, false, (int.MAX_VALUE - 1));
y sus handlers serian estos:
Código ActionScript :
private function _keyHandlerUp(e:KeyboardEvent):void {
_pressedKeys[e.keyCode] = 1;
trace("keyHanlderUp!");
}
private function _keyHandlerDown(e:KeyboardEvent):void {
delete _pressedKeys[e.keyCode];
trace("keyHanlderDown!");
}A como lo veo esta correcta y en principio funciona bien.
Basicamente lo que hacen los handlers es es grabar la tecla que ha sido presionada como metodo de un objeto, y me hace un trace que hubo una tecla presionada. El problema ocurre que cuando presiono mas de una tecla al mismo tiempo.
Por ejemplo, imaginen este proceso especifico:
-presiono la tecla A (output: keyHanlderDown! )
- luego despues de un seg. aprox. empieza a repetir los traces(se que es normal, que asi funciona, y que se puede arreglar con onEnterFrame)
-luego presiono la B sin soltar A (output: keyHanlderDown! )
-luego suelto la B sin soltar A (output: keyHanlderUp! )
-luego siguiendo la tecla A presionada (output: )
es decir, ya no es detectada
-suelto A (output: keyHanlderUp! )
Y entonces el proceso comienza de nuevo, si presiona A de nuevo, me vuelve a tracear "keyHanlderDown!".
Entonces mi duda seria por que al soltar B a deja de ser detectado, es normal?
