Unidad 22. Juegos interactivos (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, capturarTeclado);

 function capturarTeclado(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 código 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, capturarTeclado);
function capturarTeclado(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 dirección del movimiento
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");
}



Marzo-2011
Pág. 22.5

Atrás  Inicio  Adelante




.