Canvas 帆布';形状伪影';在清除后绘制图像时出现

Canvas 帆布';形状伪影';在清除后绘制图像时出现,canvas,html5-canvas,Canvas,Html5 Canvas,我的web应用程序中有一个令人费解的画布工件/bug。 清除画布后,在将另一个图像绘制到画布时,先前已清除的圆形将重新出现,但仅出现一次。映像已初始化一次,如下所示: this.image = new Image(); this.image.src = imageroot + image + '.png'; 在调试器中,我在每次绘制图像时中断,以发现此形状工件仅在我第一次绘制此图像时出现 context.drawImage(this.image, x - width / 2, z - heig

我的web应用程序中有一个令人费解的画布工件/bug。 清除画布后,在将另一个图像绘制到画布时,先前已清除的圆形将重新出现,但仅出现一次。映像已初始化一次,如下所示:

this.image = new Image();
this.image.src = imageroot + image + '.png';
在调试器中,我在每次绘制图像时中断,以发现此形状工件仅在我第一次绘制此图像时出现

context.drawImage(this.image, x - width / 2, z - height / 2, width, height);

但它不可能在图像中,同一图像的后续绘制只是表明,这个圆确实不在我在画布上绘制的图像中。但我确信它在调用此函数时出现。所以它不知怎么从什么地方冒出来了


我想我在某个地方做错了什么,因为这是一个非常奇怪的行为,但我找不到它,也无法发布数百行代码,所以我想知道什么样的误用/错误行为会导致这样一个工件出现在如此意外的上下文中(调用drawImage),所以我至少有一条线索可以追踪到这个bug。

记住使用
beginPath()
清除所有以前的路径


清除画布时,只需调用此方法,下次笔划或填充时将不会重新渲染以前的路径。

哇,这非常简单。刚刚测试过,它可以工作。我想象drawImage不会做任何与路径相关的事情,所以在绘制图像之前,我没有放置beginPath()。谢谢