Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/07/2014, 17:30
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: botones con tiempo... alguna solucion?

Yo lo haría así:

Código Javascript:
Ver original
  1. var control = true,
  2.     fn = function(message){
  3.         if (!control)
  4.             setTimeout(function(){
  5.                 console.log(message);
  6.             }, 2000);
  7.         else
  8.             console.log(message);
  9.         control = false;
  10.     };
  11.  
  12. document.addEventListener("keyup", function(e){
  13.     var key = event.keyUp|| event.which;
  14.  
  15.     switch (key){
  16.         case 37:
  17.             fn("Izquierda");
  18.         break;
  19.        
  20.         case 38:
  21.             fn("Arriba");
  22.         break;
  23.        
  24.         case 39:
  25.             fn("Derecha");          
  26.         break;
  27.        
  28.         case 40:
  29.             fn("Abajo");            
  30.         break;
  31.     }
  32. }, false);

Primero, defino una variable con la cual llevaré un control para obtener lo que buscas y que iniciará con el valor booleano false. Una vez que pulsemos una tecla, obtengo el código de ésta y según corresponda al valor de cualquiera de las teclas de dirección (las flechas), ejecuto una función a la cual le paso el nombre de la dirección como argumento, pero tú puedes ejecutar cualquier otra función en su lugar.

En esta función, evalúo el valor de la variable control; si su valor es false, muestro el mensaje con el nombre de la dirección luego de 2000 milésimas de segundo que equivalen a dos segundos, caso contrario, muestro inmediatamente el mensaje y cambio el valor de control a false. Como el valor inicial de esta variable es true, la primera vez que se pulse una tecla direccional, el mensaje se mostrará inmediatamente y cambiará el valor de control a false y para las siguientes veces, retraso la muestra del mensaje utilizando el método setTimeout, el cual ejecuta una función después de un tiempo determinado, que en este caso son 2000 milésimas de segundo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 15/07/2014 a las 17:54 Razón: Corrección