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 originalfunction pelicula(elm,jumpPx,spriteHeight,duration){
var time=setInterval(action,duration);
var inc=0;
function action(){
if(inc<spriteHeight){
inc+=jumpPx;
elm.style.backgroundPosition='0px -'+inc+'px';
}else{
clearInterval(time);
elm.style.backgroundPosition='0px -0px';
}
}
}
Y, esta vez sólo por cuestión de estilo, yo dejaría la función así:
Código Javascript
:
Ver originalfunction pelicula(elm,jumpPx,spriteHeight,duration){
var time=setInterval(function(){
if(inc<spriteHeight){
inc+=jumpPx;
elm.style.backgroundPosition='0px -'+inc+'px';
}else{
clearInterval(time);
elm.style.backgroundPosition='0px -0px';
}
},duration);
var inc=0;
}