javascript setTimeout计时器步进功能

时间:2015-08-01 06:26:49

标签: javascript jquery animation timer settimeout

我正在尝试使用自定义计时器创建一个函数,该计时器将推进我正在运行的动画的一帧。我现在可以暂停和恢复计时器,但我还没有找到一种让步功能正常工作的方法。我的动画超时延迟设置为25毫秒。

以下是我正在使用的内容:

延迟= 25

    //This function is a custom timer that tracks the start time of a timeout and calculates the remaining time
    // in order to resume at the appropriate frame of animation.
function Timer(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        remaining -= new Date() - start;
        animate = false;
    };

    this.resume = function() {
        start = new Date();
        window.clearTimeout(timerId);
        timerId = window.setTimeout(callback, remaining);
        animate = true;
    };

    this.resume();
}

我感谢任何人都能给予我的任何帮助,我仍然在学习,并且从未对计时器或计时器活动感到满意。

更新 我设法解决了我自己的问题!这就是我最终的结果。

//This function is a custom timer that tracks the start time of a timeout and calculates the remaining time
// in order to resume at the appropriate frame of animation.
function Timer(callback, delay){
    var timerId, start, remaining = delay;

    this.pause = function(){
        window.clearTimeout(timerId);
        remaining -= new Date() - start;
        animate = false;
    };

    this.resume = function(){
        start = new Date();
        window.clearTimeout(timerId);
        timerId = window.setTimeout(callback, remaining);
        animate = true;
    };

    this.step = function(){
        timer.pause();
        animate = false;
        advanceAnimation(true);
    };

    this.resume();
}

1 个答案:

答案 0 :(得分:0)

您可以使用Interval,而不是Timeout,它会像步骤一样重复,直到调用clearInterval()为止。