Comunidad de diseño web y desarrollo en internet online

Ejecutar una funcion un segundo despues de ser llamada

Citar            
MensajeEscrito el 27 Oct 2005 11:58 am
Muy buenas.
Estoy desarrollando una web en la que quiero que se ejecute una funcion, un segundo despues de ser llamada.

mas o menos he conseguido lo que queria con esto:

Código :

on(release){
   var tiempo:Number=getTimer();
   while (tiempo+1000>getTimer())
   {
         }
//aqui ejecuto la funcion.
}

primero pasa el segundo y luego se ejecuta la funcion. El detalle es que al usar el while (que es una solucion un tanto rudimentaria) toda la animacion se queda bloqueada hasta que pasa este segundo.

Necesito un metodo para que esa funcion en exclusiva tarde mas en arrancar mientras que las otras no se bloqueen "gracias" a ese while.

Algo asi como setInterval pero que en lugar de arrancar cuando se llama y repetir dependiendo de un intervalo de tiempo que hayamos puesto, que tarde en arrancar el tiempo que queramos.

No se si me explico con claridad.

En otros foros me comentan que setInterval comienza a ejecutar la funcion despues del intervalo de tiempo, es decir:

Intervalo de tiempo//Funcion//Intervalo de tiempo// Funcion...

mientras que mi propia experiencia personal me dice que setInterval hace lo siguiente

Funcion//Intervalo de tiempo//Funcion...

es decir, que se ejecuta nada más es llamado y luego se ejecuta con respecto al intervalo de tiempo dado.

Esto lo corroboro con el siguiente ejemplo:

Código :

 hazmecaso=function(){
   trace("Hola");
   clearInterVal(hazmecasoID);
   
}
hazmecasoID=setInterVal(hazmecaso(),10000);


Se puede hacer sin que sea la rudimentaria forma escrita arriba del todo???

Por Rayworld

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Oct 2005 02:33 pm
Hola viejo, la solución está en la sintaxis

vos tenés esto:

Código :

 hazmecaso=function(){ 
   trace("Hola"); 
   clearInterVal(hazmecasoID); 
    
} 
hazmecasoID=setInterVal(hazmecaso(),10000);


Detalles:
1. :crap: setInterVal :crap: = :D setInvterval :D
2. cuando pones dentro del parentesis

Código :

(hazmecaso(), 10000)

al crear el intervalo estás llamando inmediatamente la función, debes ponerla sin los parentesis porque:


Código :

// Esto llama la función, sin importar donde se escriba
hazmecaso()


mientras....

Código :

//Este es el identificador de la función y por tanto no se ejecuta.
hazmecaso


probalo así:

Código :

hazmecaso = function () {
   trace("Hola");
   clearInterval(hazmecasoID);
};
hazmecasoID = setInterval(hazmecaso, 1000);


:D
Saludos...

Por muro

13 de clabLevel



Genero:Masculino  

Medellín - Colombia

msie
Citar            
MensajeEscrito el 27 Oct 2005 10:51 pm
muuuchas gracias. Mañana en el trabajo lo pruebo y te comento si va...

Por Rayworld

5 de clabLevel



 

firefox

 

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