有木有一个方法在每一次绘画canvas之前先清除原来在canvas绘画的图像?

图片描述

代码如图!我每一次窗口改变调用canvas方法同时清除以前的绘画红线,但是现实结果却没有清除以前的红线!
求指点是什么原因!

附上一个现实结果图!图片描述

阅读 9k
2 个回答

这不是没有清除的问题,是多个 Canvas 的问题,你没有发现窗口在改变大小时会生成多个 Canvas 标签吗?清除画布是生效的,只是你清除的是新画布,对于之前绘制了内容的画布当然不起作用了。

我在你的代码中只看到创建 Canvas 了,没有看到删除之前的 Canvas。

当然你这个处理方式不对,不应该重复创建 Canvas。

应该是只创建一个 Canvas,窗口变化时改变 Canvas 的尺寸,再 clearRect(), 然后绘制内容。

是要创建多个canvas呀,因为我绘画了很多线条

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题