HTML5 Canvas不清除

时间:2012-10-04 21:49:52

标签: html5 canvas

我正在使用各种可能的方法清除画布但没有运气。只要我回到画布上,就会重新出现所有以前的图纸。

这是代码。

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();

};

3 个答案:

答案 0 :(得分:2)

在我看来,您正在使用Arrays来存储绘图信息。 我看到你已经尝试清除它们,但据我所知,最好的清除方法是将长度设置为零。试试这个:

function clearCanvas() {
clickX.length = 0;
clickY.length = 0;
clickDrag.length = 0;
context.clearRect(0, 0, canvas.width, canvas.height);
};

答案 1 :(得分:1)

如果它没有清除(并且你没有错误)那么

  1. 您的clearCanvas()方法未输入,或
  2. 您在clearCanvas()来电之后在画布上重新绘制。
  3. 对不起,这是我获得的最佳信息:P

答案 2 :(得分:1)

你说“一旦我回到画布上”。这是否意味着最初画布正在清除,直到您点击它为止?然后那对我说你有一个事件处理程序正在重新绘制所有内容。

另外,请验证您的上下文是否仍指向正确的画布。 一些画布工作需要创建临时画布。如果你已经这样做了,那么也许你正在清除错误的背景。否则我无法理解为什么context.clearRect不能正常工作。