rem: if(!this.interval) this.interval = setInterval(this.loop.bind(this), 1000/this.options.fps); 
context:   loop: function() {    var timePos = new Date().getTime();    if(timePos >= this.startOn) {      if(timePos >= this.finishOn) {        this.cancel();        this.render(1.0);        if(this.finish) this.finish();         if(this.options.afterFinish) this.options.afterFinish(this);        return;        }      var pos   = (timePos - this.startOn) / (this.finishOn - this.startOn);      var frame = Math.round(pos * this.options.fps * this.options.duration);      if(frame > this.currentFrame) {        this.render(pos);        this.currentFrame = frame;      }    }    if(!this.interval)       this.interval = setInterval(this.loop.bind(this), 1000/this.options.fps);   },
meta: 4973	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/4973/cd20286092d311391869aa6031bdd86b5e047d0f/effects.js/clean/src/effects.js