【发布时间】:2014-03-18 22:44:46
【问题描述】:
发生了什么让循环的其余部分执行,然后requestAnimationFrame 执行下一帧?
我误解了这种方法的工作原理,并且在任何地方都看不到清晰的解释。我尝试在这里阅读时间规范http://www.w3.org/TR/animation-timing/,但我无法弄清楚它是如何工作的。
例如,这段代码取自threejs文档。
var render = function () {
requestAnimationFrame(render);
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render(scene, camera);
};
【问题讨论】:
-
你能发布一些代码吗?
-
requestAnimationFrame 不是递归的,它是异步的(就像一个短的 setTimeout 但更有效)并在调用它的函数体之后执行。但是把它放在一个没有什么意义for 循环。递归发生在渲染函数中,而不是在 requestAnimationFrame 中,您没有在渲染中调用渲染。
标签: javascript animation stack-overflow requestanimationframe