const buffer = document.createElement('canvas');
const context = buffer.getContext('2d');
const canvas = document.getElementById('canvas');
const screen = canvas.getContext('2d');
// buffer canvas and screen canvas have same width and height
// draw a circle on buffer canvas
context.beginPath();
context.arc(50, 50, 10, 0, Math.PI * 2);
context.fillStyle = 'rgba(156, 39, 176,1)';
context.fill();
// render to screen canvas (working)
screen.drawImage(buffer, 0, 0);
// clear canvas when click
canvas.addEventListener('click', () => {
context.clearRect(0, 0, buffer.width, buffer.height);
screen.drawImage(buffer, 0, 0); // not working
// only working with `screen.clearRect(0, 0, canvas.width, canvas.height);`
})
像上面的代码一样,当使用一个空画布来清除另一个画布时,它不起作用。(仅限HTML,带有
<canvas id="canvas"></canvas>
标记)。在https://jsfiddle.net/wjvtzng7/上查看实时演示。
canvas
实例吗? - sabertazimiline 14
中的screen.drawImage(buffer, 0, 0);
并查看结果。实时演示请访问 https://jsfiddle.net/wjvtzng7/ - sabertazimifillRect
并不能真正清除buffer
和canvas
(它在line 14
中也起作用)。 - sabertazimi