2011-06-06 86 views
4

我有一個分層的<canvas>元素的頁面,如解答在答案here。畫布一起組成一個動畫,所以每個都被清除並根據需要重繪。RequestAnimationFrame多個畫布

現在我試圖通過使用cross browser shim合併​​。但我真的不知道在幕後做什麼​​。

是否可以在每個循環中更新多個畫布?每個畫布應該有自己的循環?答案瀏覽器是否依賴?

回答

6

更新所有的畫布在單個​​是完全沒有問題。

如果畫布彼此獨立並出現在頁面的不同部分,則可能需要使用個別的​​處理程序,並將canvas元素作爲第二個參數傳遞。這樣,只有當前可見的畫布得到更新。 (儘管傳遞元素作爲第二個參數是WebKit特有的)。

​​所做的是告訴瀏覽器您想更新頁面的外觀。瀏覽器在頁面或元素下次重新繪製時調用回調。當頁面/元素可見時,就會發生這種情況,並且永遠不會比屏幕刷新率更高。

1

如果墊片不可用,墊片只能返回到計時器。

你應該沒問題。在同一個單一循環中更新它們全部。

requestAnimFrame不是「綁定」到畫布或任何東西,只是你傳遞它的函數。所以你可以使用它與三個畫布或零帆布就好。