可选项在mootools中跳过fx

时间:2009-12-16 09:23:27

标签: javascript mootools

是否有一种简单的方法可以跳过所有fx,同时仍然设置值并调用事件。

我想通过

将fx持续时间选项全局设置为0
Fx.prototype.options.duration = 0

但这仍然无法解决我的问题,因为它会占用一些最短的时间,最终导致很多显示错误。

会是什么样的好事就像

Fx.ENGINE = 'on' / 'off'
Fx.SPEED_MULTIPLYER = 1 ... 10

1 个答案:

答案 0 :(得分:0)

经过一次小黑客攻击后,我自己找到了一个解决方案......

$extend(Fx.Durations, { skip: 0 });
$extend(Fx.prototype.options, { skip: false, multiplier: 1 });
Fx.implement({
    step: function() {
        var time = $time();
        if ((time < this.time + (this.options.duration / this.options.multiplier)) && !this.options.skip){
            var delta = this.transition((time - this.time) / (this.options.duration / this.options.multiplier));
            this.set(this.compute(this.from, this.to, delta));
        } else {
            this.set(this.compute(this.from, this.to, 1));
            this.complete();
        }
    },
    startTimer: function(){
        if (this.timer) return false;
        this.time = $time() - this.time;
        this.step();
        this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);
        return true;
    }
});

现在有一个跳过选项可以跳过效果,倍增器选项可以全局加快/减慢效果。

吉姆