Utilización de la clase Key en Flash
miércoles, 14 de junio de 2006

Basicamente, la clase Key, nos permite interactuar a través del teclado con nuestras películas.
Es asi como se puede crear un sencillo ejemplo como el siguiente:

 


 

 

Como ven, se interactua con el teclado a través de las teclas IZQUIERDA y DERECHA. Su funcionamiento no es difícil, veamos cómo se realiza...

En primer lugar tendremos un Movieclip con el nombre de instancia mc. Dicho Movieclip será el cual manipularemos con el teclado. Luego escribimos en el fotograma correspondiente:

Código:

//Movieclip a utilizar
var mc:MovieClip;
//Numero de pixeles a mover
var pixeles:Number = 1;

//Se establece una función al presionar una tecla
mc.onKeyDown = function() {
 //Si se presiona izquierda, mover "mc" a la izquierda
 if (Key.isDown(Key.RIGHT)) {
  mc._x += pixeles;
  //Por el contrario, si se presiona derecha, mover "mc" a la derecha
 } else if (Key.isDown(Key.LEFT)) {
  mc._x -= pixeles;
 }
};
//addListener nos notifica que se han precionado las teclas
Key.addListener(mc); 

 

A través de onKeyDown, al presionar una tecla realizamos una función (mover a mc). Debemos indicar con que tecla presionada se desencadenará la acción (Key.isDown(Key.RIGHT) / (Key.LEFT)). Finalmente cuando de presione una tecla, addListener invocará el método onKeyDown al objeto mc, ejecutándose la acción de movimiento.

Sin embargo, si utilizamos este código para ejecutar una sola vez la acción cada vez que presionamos una tecla, veremos que se ejecutará tantas veces como la mantengamos apretada.

La idea del siguiente ejemplo es que al presionar DERECHA, nos diga cuantas veces la hemos apretado a dicha tecla:

 

 

 

 
Como ven, si mantenemos presionada DERECHA, el contador nos tendría que mostrar que la presionamos sola una vez, pero no lo hace, y esto es debido a que no existe un evento que nos indique que la tecla se ha dejado de apretar. Para esto utilizaremos onKeyUp y una variable llamada flag (bandera) el cual nos avisará cuando la tecla se presiona y cuando se suelta.

Veamos el código con onKeyUp y la variable flag: 

Código: 

//Campo de texto en el escenario "txt"
var txt:TextField;
//Variable que nos avisará cuando se presiona y suelta la tecla
var flag:Boolean = false;
//numero es cuantas veces se presiona la tecla
var numero:Number = 0;
//Texto inicial en "txt"
txt.text = "Haz click aquí y luego presiona la tecla derecha";
//Al presionar, cambiamos flag a true
txt.onKeyDown = function() {
 if (flag == false) {
  flag = true;
  //Incrementamos a numero y asignamos a txt
  if (Key.isDown(Key.RIGHT)) {
   numero++;
   if (numero == 1) {
    txt.text = "Presionastes "+numero+" vez";
   }
  }
  if (numero != 1) {
   txt.text = "Presionastes "+numero+" veces";
  }
 }
};
//Al soltar la tecla flag vuelve a false
txt.onKeyUp = function() {
 flag = false;
};
//addListener nos notifica que se han precionado las teclas
Key.addListener(txt); 

 

 A través de flag lograremos ejecutar el código solo una vez al presionar DERECHA. Al ser soltada, podremos ejecutar el código nuevamente, como se ve a continuación:

 

 

 

 

Las ventajas de poner este límite es la buena administración de los recursos del sistema. 

 

Ejemplos utilizados 

 


Tags:  tutorial flash

..y tal vez te interese:




 Comentarios


  • Por favor, mantenga el tópico de los mensajes en relevancia con el tema del artículo.
  • Lenguaje inapropiado será borrado.


Nombre:
E-mail:
Sitio Web:
Comentario:

Código:* Code

 
Delicious
Mister Wong
< Anterior   Siguiente >

Suscribirse por feed


Suscribirse por e-mail

Tu dirección de correo