我在许多示例中看到过,甚至官方文档中也经常使用requestAnimationFrame
。例如:
var render = function () {
requestAnimationFrame(render);
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render(scene, camera);
};
为什么要将
requestAnimationFrame
放在函数体的顶部?对我来说,这可能会导致调用堆栈或执行环境拥塞,因为如果render
函数被requestAnimationFrame
调用之前其余函数体已经完成执行,因为下一帧动画已经可用了,那会发生什么?(后续所有调用同理,导致拥堵) 对我而言,似乎将requestAnimationFrame(render);
语句放在函数体的最后更合理。这样,函数的其余部分始终保证在再次调用渲染函数之前已经完成执行。 我是否缺少或误解了某些内部机制,实际上将其置于顶部是推荐的方法,还是为什么经常出现?请帮助我理解,谢谢。