我想做的是在缓冲区上绘制图形,然后将其原样复制到画布上,这样我就可以进行动画处理并避免闪烁。但是我找不到这个选项。有人知道我该怎么做吗?
最佳答案
以下有用的链接除了显示使用双缓冲的示例和优点之外,还显示了使用html5 canvas元素的其他一些性能提示。它包含指向jsPerf测试的链接,这些链接将跨浏览器的测试结果汇总到Browserscope数据库中。这样可以确保性能提示得到验证。
http://www.html5rocks.com/en/tutorials/canvas/performance/
为了您的方便,我提供了本文所述的有效双缓冲的最小示例。
// canvas element in DOM
var canvas1 = document.getElementById('canvas1');
var context1 = canvas1.getContext('2d');
// buffer canvas
var canvas2 = document.createElement('canvas');
canvas2.width = 150;
canvas2.height = 150;
var context2 = canvas2.getContext('2d');
// create something on the canvas
context2.beginPath();
context2.moveTo(10,10);
context2.lineTo(10,30);
context2.stroke();
//render the buffered canvas onto the original canvas element
context1.drawImage(canvas2, 0, 0);
关于javascript - HTML5/Canvas是否支持双缓冲?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23801306/