Unidad 22. Juegos (V)

22.4. Interacción del Teclado

Podemos añadir a nuestras películas interacción con las teclas pulsadas, el procedimiento es muy sencillo, basta con detectar los eventos que se producen al pulsar las teclas y saber qué tecla lo ha originado.

Cuando recogemos un evento de teclado, disponemos del método .keyCode, que nos indica la tecla que se ha pulsado. Dependiendo de la que sea, haremos una cosa u otra. Por ejemplo:

addEventListener(KeyboardEvent.KEY_DOWN,direccion);

 function direccion(tecla:KeyboardEvent):void{

  //Es importante especificar que es un vento del tipo KeyboardEvent

  //para poder emplear el método .keyCode.

  switch (tecla.keyCode){

    case Keyboard.RIGHT:

      //mover hacia la derecha

    break;

    case Keyboard.LEFT:

      //mover hacia la izquierda

    break;

  }

} 

Los códigos de las teclas son bastante sencillos, las flechas UP, DOWN, RIGHT y LEFT; la barra espaciadora SPACE; y las teclas especiales SHIFT, CONTROL, TAB, CAPSLOCK, ESCAPE, ENTER, BACKSPACE, INSERT, DELETEKEY, HOME, END, PGDN y PGUP. Siempre precedido por Keyboard.

Los eventos de teclado que podemos emplear son:

  • KeyboardEvent.KEY_DOWN ("keyDown") - Cuando se pulsa una tecla.
  • KeyboardEvent.KEY_UP ("keyDown") - Cuando se suelta.

 

Recordemos el ejemplo que vimos al principio del tema. Esta vez, lo vamos a cambiar para mover el objeto con las teclas en vez de con el ratón:

Nota: Si no responde al teclado, haz clic primero para que tome el foco.

El codigo que hemos incluido es el siguiente:

var izquierda:Boolean=false;

var derecha:Boolean=false;

miClip.gotoAndStop("parado");



//Detectamos el evento al pulsar tecla, y marcamos

//La dirección del movimiento

addEventListener(KeyboardEvent.KEY_DOWN,direccion);

function direccion(tecla:KeyboardEvent):void {

	switch (tecla.keyCode) { //Dependiendo de la tecla, indicamos

		case Keyboard.RIGHT :  //una dirección u otra

			derecha=true;

			break;

		case Keyboard.LEFT :

			izquierda=true;

			break;

	}

}



//En el evento onEnterFrame, comprobamos si están activas

//Las variables que indican la direción del movimeinto

miClip.addEventListener(Event.ENTER_FRAME, movimiento);

function movimiento(event):void {

	if (derecha) {

		miClip.gotoAndStop("derecha");

		if (miClip.x<490) {

			miClip.x=miClip.x+7;

		}

	} else if (izquierda) {

		miClip.gotoAndStop("izquierda");

		if (miClip.x>7) {

			miClip.x=miClip.x-7;

		}



	}

}

//Detectamos cuándo se suelta la tecla

addEventListener(KeyboardEvent.KEY_UP, parar);

function parar(event):void {

	derecha=false; //Y paramos el movimiento

	izquierda=false;

	miClip.gotoAndStop("parado");

}
Pág. 22.5

Atrás  Inicio  Adelante