Conquering the World with absurd Cuteness
Todos los eventos de teclado en Flash se gestionan a través de la misma clase:
|
Clase Key Imprescindible Para: Capturar los eventos de teclado en nuestra aplicación. Es Bueno Porque… realmente es una clase bastante intuitiva, que cumple con lo que se le pide sin tener que generar docenas de lineas de código. Es Malo Porque… no ofrece una opción de buscar directamente las teclas, hay que poner el valor de teclado o usar las constantes, es complicado capturar combinación de teclas. |
Podemos crear respuestas a los eventos de teclado de dos maneras. La primera es crear un Listener, que generará un evento cada vez que pulsemos una tecla. La otra es preguntando directamente a la clase Key. Cada una tiene sus ventajas y sus desventajas. Si no requerimos una interacción constante del teclado (por ejemplo, si controlamos el juego exclusivamente con el ratón y queremos usar el teclado para pausar el juego, o llamar al menú de opciones), es mejor programar un listener que interrumpa nuestra partida. Si por el contrario vamos a usar constantemente una serie de botones, es mejor preguntar a la clase Key durante nuestro bucle principal. Veamos como se implementa cada método.
El Listener es una función que se dedica a esperar que ocurra un evento. Para ello primero creamos una variable de tipo Objeto y le asignamos la función de “escuchar” los eventos de teclado.
var keyListener:Object = new Object; //Creamos un objeto, a ser posible con un nombre descriptivo.
Key.addListener(keyListener); // Con este comando, Flash pasará todos los eventos de teclado a keyListener
Una vez tenemos el objeto “en escucha”, es cuestion de decirle a Flash que es lo que ha de hacer cuando ocurra el evento en cuestión. Key emite dos eventos; onKeyDown, que ocurre cuando pulsas una tecla y onKeyUp, que ocurre cuando sueltas una tecla.
keyListener.onKeyDown = function() {
// Ponga aquí el código a ejecutar
}
Como veis, no es muy complicado. La ventaja que tiene este evento es que cada vez que pulsemos una tecla, Cualquier Tecla, saltará. Esto nos permite añadir todos los condicionales que hagan falta. Lo malo es que cada vez que pulsemos una tecla, saltará, lo que puede ser una perdida de recursos.
La clase Key tiene una serie de propiedades a las que podemos acceder simplemente preguntándole: La inportante para nosotros es Key.isDown(tecla). Cuando invocamos esta función, Key comprueba si esa tecla esta activa o inactiva y nos devuelve “true” o “false” en correspondencia. Como tenemos que facilitarle el código de teclado, y probablemente no nos los sabremos de memoria, la clase Key nos ofrece dos facilidades: Por un lado, una serie de constantes guardadas con las teclas más comunes (Key.UP, Key.DOWN, Key.LEFT, Key.RIGHT, Key.ENTER …) y por el otro, una función que devuelve el último código presionado (con lo que podemos anotarlo para futuras referencias). Supongamos que queremos comprobar durante el juego si la tecla “arriba” está presionada. El código resultante sería este.
if (Key.isDown(Key.UP)) {
// Código a ejecutar
}
Ejemplo práctico nº 1:
He creado un par de ejemplos. Los dos muestran un grupo de flechas. Cuando pulseis la tecla de cursor correspondiente cambiarán de color. El primero (1_KeyListener.fla), realiza este método llamando al evento Key.onKeyDown, mientras que el segundo (1_KeyPoll.fla), pregunta directamente por cada tecla.
Nekoplanet es un gato (que me matará el dia que sepa como lo he llamado). Nekoplanet es una persona. Nekoplanet son los amigos de esta persona. Nekoplanet es una canción que no te puedes quitar de la cabeza. Nekoplanet es...
¡Demonios! ¡Quien ha dejado entrar a un ejecutivo de marketing en el blog! ¡Echadlo a patadas!
Bienvenidos a Nekoplanet
Dejar un comentario