如果我有2张 Canvas :

第一个 Canvas (canvas1)是包含文本的基本 Canvas ,并且将另存为图像(canvas1 + canvas2)。

第二个图像(canvas2)包含可以通过keydown在canvas2内移动的图像。当我先清除canvas2然后清除context2.drawImage(img,x,y)时,该代码在canvas2上正常工作。

但是,如果我写了(canvas1.drawImage(canvas2, 0, 0),则图像的运动显示在 Canvas 1中。如果我说清除 Canvas 1,则canvas1.drawImage(canvas2, 0, 0)的文本将消失。

所以我的问题是:当用户完成移动图像而不是在移动图像时,如何在 Canvas 1上绘制 Canvas 2?

最佳答案

我尚不完全清楚为什么要执行此操作,但是如果希望“ Canvas 1”始终显示 Canvas 1 + 2,则可以始终保存“ Canvas 1”的内容:

  • 将Canvas 1绘制到内存中的 Canvas (称为canvas3)
  • 将 Canvas 2绘制到 Canvas 1
  • 将 Canvas 3(已保存 Canvas 1)绘制回 Canvas 1

  • http://jsfiddle.net/Jvgxb/14/

    09-10 12:00