Comunidad de diseño web y desarrollo en internet online

Problema con deteccion de teclas usando un listener

Citar            
MensajeEscrito el 05 Sep 2008 10:21 pm
Hola, tengo un problema con la deteccion de teclas, usando un listener y probando con Key.getCode() y con Key.isDown() ambos leen algunas letras y otras no.. y no entiendo donde puede estar el problema
aca van los codigos que probe:

Código :

var listener:Object = new Object();

var flag:Boolean = true;
listener.onKeyDown = function():Void { 
   if(Key.getCode() == 72 && flag == true){
      trace("abajo");
      listener.onKeyUp = function(){
         trace("arriba");
         flag = true;
      }
      flag = false;
   }
}
Key.addListener(listener);



Código :

var listener:Object = new Object();

var flag:Boolean = true;
listener.onKeyDown = function():Void { 
   if(Key.isDown(72) && flag == true){
      trace("abajo");
      listener.onKeyUp = function(){
         trace("arriba");
         flag = true;
      }
      flag = false;
   }
}
Key.addListener(listener);



Sin embargo si cambio el 72 (que es la tecla que corresponde a la 'h') por alguna que si funcione como la 'w' o teclas como CONTROL o SPACE si funciona el codigo




P.D.: ya que estoy, ¿como podria evitar usar un flag para que al presionar la tecla no me lo cuente como muchas veces? ( osea que tenga q levantar la tecla y volver a presionarla para que el listener encuentre que se presiono otra tecla)

Desde ya muchas gracias :)

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

firefox
Citar            
MensajeEscrito el 05 Sep 2008 10:28 pm

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

firefox
Citar            
MensajeEscrito el 06 Sep 2008 01:21 am
Lo primero es que desde la ventana de publicación de flash muchas teclas no te funcionarán por defecto, porque estas tienen una función al presionarlas dentro de flash, si quieres que te funcionen debes ir a Control > Disable KeyBoard Shortcuts.

Por otro lado lo que quieres se logra haciendo dos listeners diferentes y borrando uno cuando presiones la tecla y volviéndolo a crear cuando la levantes:

Código ActionScript :

var listenerDown:Object = new Object();
var listenerUp:Object = new Object();

listenerDown.onKeyDown = function():Void  {

   if (Key.getCode() == 72) {
      trace("abajo");
      Key.removeListener(listenerDown);
   }

};

listenerUp.onKeyUp = function():Void  {

   if (Key.getCode() == 72) {
      trace("arriba");
      Key.addListener(listenerDown);
   }

};

Key.addListener(listenerDown);
Key.addListener(listenerUp);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Sep 2008 05:58 am
perdon :d habia posteado aca algo que iba en otro lado
sorry

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.