![](/img/trans.png)
[英]JavaScript: using cancelAnimationFrame inside requestAnimationFrame loop
[英]forEach loop inside RequestAnimationFrame
我想构建一个(THREEjs)项目,我正在像这样工作
class Blah
scene : new THREE.Scene()
renderer : new THREE.WebGLRenderer()
camera : new THREE.PerspectiveCamera()
render : ( renderables )->
renderables.forEach ( renderable )->
renderable()
@renderer.render( @scene, @camera )
foo = new Blah()
animateMovie =->
requestAnimationFrame( animateMovie )
foo.render([baz.update, bar.update])
render
方法需要一个函数数组来更新。 animateMovie
内部animateMovie
会有一个循环,它使用requestAnimationFrame
递归调用,导致堆栈溢出,并且执行此类操作是否存在任何性能问题。
requestAnimationFrame()
方法告诉浏览器在下一次重绘发生之前运行回调函数。
在将 JavaScript 用于动画和重复 UI 更新时,它特别有用。 因为它与浏览器的重绘时间有关,所以它比使用setInterval()
东西产生更平滑的效果
requestAnimationFrame()
方法只运行一次。 您可以使用称为递归的技术使其反复循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.