Salve a tutti, volevo fare un oggetto per gestire semplici animazioni, del tipo spostare un box tra due punti.

Ma indovinate un po', non mi funziona.... Riducendo al minimo sono arrivato a queste due funzioni :

codice:
function Motor(){
    this.interval = 20;
    this.timer = null;
    this.animation = null;

    this.doSingleStep = function(){
        this.animation.doStep();
    }

    this.run = function(){
        this.timer = setInterval(this.doSingleStep,this.interval);
    }

    this.stop = function(){
        clearInterval(this.timer);
    }

    this.addAnimation = function(anim){
        this.animation = anim;
    }
}

function createAnimation(from,to,id){
    this.from = from;
    this.to = to;
    this.id = id;
    this.doStep = function(){
        document.getElementById('box').style.left = (document.getElementById('box').style.left+ 10) +'px';
    }
}

var mainmotor = new Motor();
mainmotor.addAnimation(new createAnimation(0,100,'box'));
mainmotor.run();
In sostanza : la prima registra una animazione e chiama il relativo metodo doStep(), la seconda rappresenta proprio l'animazione che deve essere eseguita...


Qualcuno ha delle idee ? Perchè nun funzia ?

Ciao e grazie