我正在尝试使用自定义计时器创建一个函数,该计时器将推进我正在运行的动画的一帧。我现在可以暂停和恢复计时器,但我还没有找到一种让步功能正常工作的方法。我的动画超时延迟设置为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();
}
答案 0 :(得分:0)
您可以使用Interval,而不是Timeout,它会像步骤一样重复,直到调用clearInterval()为止。