Actionscript 3.0: Detectar tecla pulsada con KeyboardEvent

Etiquetas: charCode keyCode KeyboardEvent.KEY_DOWN

El siguiente código muestra como detectar la tecla pulsada durante la ejecución de una película Flash. Para ello hay que añadir al escenario un listener del tipo KeyboardEvent, y recoger en la función correspondiente el parámetro que esta genera.

/*
Función que recoge el evento KEY_DOWN del teclado. Recibe como parámetro un objeto creado por 
KeyboardEvent, y que contiene parámetros específicos de los eventos de teclado (por 
ejemplo charCode o keyCode)
*/
function TeclaPulsada(event:KeyboardEvent):void{
	//Imprime en pantalla el código de carácter de la tecla pulsada (charCode)
	trace("Sú código de carácter es: " + event.charCode);
	//Esto coge el código de carácter de la tecla presionada y "calcula" a que letra corresponde
	var let = String.fromCharCode(event.charCode);
	trace("Has pulsado la letra " + let);
	//Imprime en pantalla el código de tecla de la tecla pulsada (keyCode). Si queremos utilizar las flechas 
	//del teclado, por ejemplo, deberemos utilizar keyCode en lugar de charCode, ya que el charCode de todas
	//estas teclas es 0. No todas las teclas tienen charCode propio, pero si tienen keyCode propio. 
	trace("Sú código de tecla es: " + event.keyCode);
}
 
//Añade el listener de teclado al escenario
stage.addEventListener(KeyboardEvent.KEY_DOWN, TeclaPulsada);
 

Comentarios:
carlos dijo:
un favor mira estoy probando este codigo pero tengo un problema y quisiera q me ayudes. Mi problema es q cuando pulso las letras solo salen la a la d y otras 2 pero no me salen todas las letras q pulso. quisiera q me ayudes en este problema, xfa q es para un trabajo q tengo q presentar. muxas gracias
SdR dijo:

Estás probando al compilar des Flash?

Si es así, tienes que tener en cuenta que muchas teclas están reservadas para los métodos abreviados de teclado.

Para que te "funcionen" todas las teclas en la película, tienes que marcar Control-->Deshabilitar Métodos abreviados de teclado.

Esto pasa solo al compilar desde Flash, si lo pruebas desde un navegador, verás que funciona sin problemas.

lucas dijo:
Me funcionó, ¡gracias! Lo estaba buscando hace rato. Una pregunta sólamente: si quiero detectar botones como izquierda, derecha, etc; ¿debo usar los números que obtengo con esta función o hay otra forma? ¡Saludos!
Dejar un comentario:
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web: