Estoy desarrollando un pequeño juego. Yo uso el siguiente código para detectar las teclas pulsadas por el jugador:¿Cuántas teclas presionadas puede detectar Flash? usando as3
private function onKeyDown(event:KeyboardEvent):void {
//moviment keys
if (event.keyCode == 37 || event.keyCode == 65) {
this.leftKeyPressed = true;
}
if (event.keyCode == 39 || event.keyCode == 68) {
this.rightKeyPressed = true;
}
if (event.keyCode == 38 || event.keyCode == 87) {
this.upKeyPressed = true;
}
if (event.keyCode == 40 || event.keyCode == 83) {
this.downKeyPressed = true;
}
if (event.keyCode == this.shootKey) {
this.shootKeyPressed = true;
}
}
El evento onKeyUp:
private function onKeyUp(event:KeyboardEvent):void {
if (event.keyCode == 37 || event.keyCode == 65) {
this.leftKeyPressed = false;
}
if (event.keyCode == 39 || event.keyCode == 68) {
this.rightKeyPressed = false;
}
if (event.keyCode == 38 || event.keyCode == 87) {
this.upKeyPressed = false;
}
if (event.keyCode == 40 || event.keyCode == 83) {
this.downKeyPressed = false;
}
if (event.keyCode == this.shootKey) {
this.shootKeyPressed = false;
}
if (event.keyCode == changeColorKey) {
trace('color key released');
trace(getTimer());
this.changeColorKeyPressed = true;
}
}
Básicamente, el shootKey se mantenga pulsado por el jugador casi todo el tiempo. Y el changeColorKey se presionará muy a menudo pero no se mantendrá presionado. Durante las pruebas, observé que al mantener pulsada la tecla disparada y la flecha hacia la derecha, los eventos onKeyUp para changeColorKey no se disparan. Manteniendo presionada la tecla de la flecha hacia arriba o hacia abajo en lugar de la flecha hacia la derecha tiene el mismo efecto. Si mantengo presionada la tecla de flecha izquierda, los eventos se disparan. ¿Por qué ocurre? ¿Hay algún problema con mi código?
Y un par de artículos sobre este tema (e incluso cómo hackear un teclado). http://www.extremetech.com/article2/0,2845,2301151,00.asp http://www.extremetech.com/article2/0,2845,1656177,00.asp Parece usb usb los teclados admiten hasta seis teclas simultáneas, por lo que si tiene un teclado anterior, este puede ser un buen momento para actualizarlo. – LopSae