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 originalfunction pelicula(elm,jumpPx,spriteHeight,duration){
var inc=0;
var time=setInterval(function(){
if(inc<spriteHeight){
inc+=jumpPx;
elm.style.backgroundPosition='0px -'+inc+'px';
}else{
clearInterval(time);
elm.style.backgroundPosition='0px -0px';
}
},duration);
}
Siento mucho las molestias.