Javascript RequestAnimationFrame内的forEach循环
我想构建一个3JS项目,我正在这样做Javascript RequestAnimationFrame内的forEach循环,javascript,recursion,coffeescript,three.js,Javascript,Recursion,Coffeescript,Three.js,我想构建一个3JS项目,我正在这样做 class Blah scene : new THREE.Scene() renderer : new THREE.WebGLRenderer() camera : new THREE.PerspectiveCamera() render : ( renderables )-> renderables.forEach ( renderable )->
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方法需要更新一组函数。在使用requestAnimationFrame递归调用的animateMovie中有一个循环会导致堆栈溢出吗?这样做是否会导致性能问题。requestAnimationFrame方法告诉浏览器在下一次重新绘制之前运行回调函数
当使用JavaScript进行动画和重复UI更新时,它特别有用。因为它与浏览器的重新绘制时间有关,所以它产生的效果比使用setInterval之类的工具更平滑
requestAnimationFrame方法只运行一次。您可以使用一种称为递归的技术使其反复循环。使用renderable for renderable for renderable in renderables可以减轻调用堆栈的压力。谢谢您的提示。我要试一试。