Comunidad de diseño web y desarrollo en internet online

Presionar tecla varias veces

Citar            
MensajeEscrito el 23 Jul 2012 09:08 pm
Saludos
Mirad necesito ayuda con esto, quiero que un objeto rote al presionar una tecla, tengo este código

Código ActionScript :

   if(Key.isDown(32)){
        objeto._rotation += 1;
   }

con eso el objeto rota pero si se mantiene presionada la tecla espacio, yo quiero que rote por cada vez que se presione la tecla como si se tratara de un juego de cuantos click puedes hacer por minuto
Muchas gracias

Por 53b45

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Jul 2012 02:01 pm
Usa un flag

Código ActionScript :

if(Key.isDown(32)){
        if(up)  objeto._rotation += 1;
        up = false
   }


En el keyUp pasas up a true (deberas agregar el listener)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Jul 2012 03:53 pm
Gracias por responder tan pronto :wink:

pues he probado con este

Código ActionScript :

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

listenerDown.onKeyDown = function():Void  {

   if (Key.getCode() == 32) {
      clip._rotation +=1;
      Key.removeListener(listenerDown);
   }

};

listenerUp.onKeyUp = function():Void  {

   if (Key.getCode() == 32) {
      Key.addListener(listenerDown);
   }

};

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


me funciona pero si creo un nuevo archivo no se porque :?
es decir si lo uso en el que ya tenia el objeto da vueltas sin parar :shock:
alguna idea como soluciono esto ??
Muchas gracias

Por 53b45

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Jul 2012 04:10 pm
No era esa la idea del flag, pero me viene bien porque estoy un poco olvidado de AS2. La idea sería

Código ActionScript :

var listenerDown:Object = new Object();
var listenerUp:Object = new Object();
var up:Boolean = true;

listenerDown.onKeyDown = function():Void  {
   if (Key.getCode() == 32) {
      if(up) clip._rotation +=1;
      up = false;
   }
};

listenerUp.onKeyUp = function():Void  {
   if (Key.getCode() == 32) {
      up = true;
   }
};
Key.addListener(listenerDown);
Key.addListener(listenerUp);


Cambiar un flag es menos costoso (en procesamiento) que agregar/quitar listener

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Jul 2012 08:04 pm
Jajaja gracias por responder tan pronto, me gusta mas esta estructura pero me creerías que ya lo había probado en mi archivo de pruebas y no me funcionaba, lo acabo de probar en ese mismo y no funciona, pero si creo un archivo 2.0 nuevo si funciona :( (el otro también es 2.0) igual agradezco la ayuda con esto he aclarado muchas cosas gracias por todo.

Por 53b45

6 de clabLevel



Genero:Masculino  

firefox

 

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