我正在使用各种可能的方法清除画布但没有运气。只要我回到画布上,就会重新出现所有以前的图纸。
这是代码。
function clearCanvas() {
//clickX = [];
//clickY = [];
//clickDrag = [];
//context.clearRect(0, 0, canvas.width, canvas.height);
//curColor = colorBlack;
//redraw();
//clickX = new Array();
//clickY = new Array();
//clickDrag = new Array();
context.fillStyle = '#faebd7';
context.fillRect(0, 0, canvas.width, canvas.height);
canvas.width = canvas.width;
//context.beginPath();
};
答案 0 :(得分:2)
在我看来,您正在使用Arrays来存储绘图信息。 我看到你已经尝试清除它们,但据我所知,最好的清除方法是将长度设置为零。试试这个:
function clearCanvas() {
clickX.length = 0;
clickY.length = 0;
clickDrag.length = 0;
context.clearRect(0, 0, canvas.width, canvas.height);
};
答案 1 :(得分:1)
如果它没有清除(并且你没有错误)那么
clearCanvas()
方法未输入,或clearCanvas()
来电之后在画布上重新绘制。对不起,这是我获得的最佳信息:P
答案 2 :(得分:1)
你说“一旦我回到画布上”。这是否意味着最初画布正在清除,直到您点击它为止?然后那对我说你有一个事件处理程序正在重新绘制所有内容。
另外,请验证您的上下文是否仍指向正确的画布。 一些画布工作需要创建临时画布。如果你已经这样做了,那么也许你正在清除错误的背景。否则我无法理解为什么context.clearRect不能正常工作。