Javascript 多张画布的RequestAnimationFrame

Javascript 多张画布的RequestAnimationFrame,javascript,html,canvas,Javascript,Html,Canvas,我有一个包含分层元素的页面,如答案中所述。画布一起构成一个动画,因此每个画布都会被清除并根据需要重新绘制 现在我正试图通过使用来合并requestAnimationFrame。但我真的不知道requestAnimationFrame在幕后做了什么 让它在每个循环中更新多张画布可以吗?每个画布都应该有自己的循环吗?答案是否依赖于浏览器?如果垫片不可用,它只会返回到计时器 你应该没事的。在同一个循环中更新它们 requestAnimFrame不是“绑定”到画布或任何东西,只是传递给它的函数。因此,您

我有一个包含分层
元素的页面,如答案中所述。画布一起构成一个动画,因此每个画布都会被清除并根据需要重新绘制

现在我正试图通过使用来合并
requestAnimationFrame
。但我真的不知道
requestAnimationFrame
在幕后做了什么


让它在每个循环中更新多张画布可以吗?每个画布都应该有自己的循环吗?答案是否依赖于浏览器?

如果垫片不可用,它只会返回到计时器

你应该没事的。在同一个循环中更新它们


requestAnimFrame
不是“绑定”到画布或任何东西,只是传递给它的函数。因此,您可以将其用于三张画布或零张画布,效果很好。

使用
requestAnimationFrame
可以让浏览器控制页面上何时发生回流/重新绘制

最好在一次回调中更改所有画布,以便浏览器可以一次性重新绘制它们


在一个
requestAnimationFrame
中更新所有画布完全可以

如果画布彼此独立并显示在页面的不同部分,则可能需要使用单个
requestAnimationFrame
处理程序,将
canvas
元素作为第二个参数传递。这样,只有当前可见的画布才会得到更新。(不过,作为第二个参数传递元素是特定于WebKit的。)


requestAnimationFrame
所做的是告诉浏览器您想要更新页面的外观。当页面或元素下一次重新绘制时,浏览器调用回调。当页面/元素可见时就会发生这种情况,并且刷新频率永远不会超过屏幕刷新率。

使用此格式js文件的画布,以便多画布的RequestAnimationFrame可以工作

(function(){ ... })();

你能给你的答案加个解释吗?为什么使用您提供的代码有效?问题是什么?