我尝试使用requestAnimationFrame为JPG图像序列创建动画,但是我注意到某些时候在某些帧上需要更长的时间。如果你运行这个当控制台打开时,你会看到,每个调用之间的毫秒的差异是不一样的https://jsfiddle.net/bhenqfbw/函数调用与requestAnimationFrame之间的时间间隔变化
:
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000/60);
};
})();
var start;
var i=0;
var animateLoop = function() {
if(i>500) {
return false;
}
i++;
requestAnimFrame(animateLoop);
var _start = start;
start = +new Date();
console.log("Iteration:"+i, "Milliseconds Diff: "+(start-_start));
}
animateLoop();
为了详细说明,请看看这个小提琴。在我改变图像源的情况下,波动更大。
有没有一种方法可以使其保持不变或只需要这样?
嗯......你不是在一个实时的环境中运行。这个是正常的。 – Cameron