Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/11/2013, 14:37
Avatar de patkoala
patkoala
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 19
Respuesta: Ejecutar función u objeto en paralelo

El problema radica en que cuando vas a ejecutar la función por segunda vez, la variable 'time' ya está definida por la anterior llamada.
Yo lo intentaría así:
Código Javascript:
Ver original
  1. function pelicula(elm,jumpPx,spriteHeight,duration){
  2.     var time=setInterval(action,duration);
  3.     var inc=0;
  4.     function action(){
  5.        
  6.         if(inc<spriteHeight){
  7.             inc+=jumpPx;
  8.             elm.style.backgroundPosition='0px -'+inc+'px';
  9.         }else{
  10.             clearInterval(time);
  11.             elm.style.backgroundPosition='0px -0px';          
  12.         }
  13.     }
  14.    
  15. }
Y, esta vez sólo por cuestión de estilo, yo dejaría la función así:
Código Javascript:
Ver original
  1. function pelicula(elm,jumpPx,spriteHeight,duration){
  2.     var time=setInterval(function(){
  3.        
  4.         if(inc<spriteHeight){
  5.             inc+=jumpPx;
  6.             elm.style.backgroundPosition='0px -'+inc+'px';
  7.         }else{
  8.             clearInterval(time);
  9.             elm.style.backgroundPosition='0px -0px';          
  10.         }
  11.     },duration);
  12.     var inc=0;  
  13. }