Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/11/2013, 10:25
Avatar de patkoala
patkoala
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 9 meses
Puntos: 19
Respuesta: Ejecutar función u objeto en paralelo

La velocidad del intervalo se define al llamar a setInterval, es decir, cuando asignas una variable a setInterval, estás asignando una referencia para poder cerrarlo.
Por mucho que cambies la variable (la incrementes) la velocidad del intervalo no variará.
De hecho no es necesario que iguales time a null, ya que al ser una variable local, cuando paras el intervalo la destruyes.
El que puede estar generando ese comportamiento es el uso del último código que dejé, ya que tiene un error grave.
La variable "inc" debe inicializarse antes de la creación del intervalo.
Código Javascript:
Ver original
  1. function pelicula(elm,jumpPx,spriteHeight,duration){
  2.     var inc=0;
  3.     var time=setInterval(function(){
  4.        
  5.         if(inc<spriteHeight){
  6.             inc+=jumpPx;
  7.             elm.style.backgroundPosition='0px -'+inc+'px';
  8.         }else{
  9.             clearInterval(time);
  10.             elm.style.backgroundPosition='0px -0px';          
  11.         }
  12.     },duration);  
  13. }
Siento mucho las molestias.