1
我刚刚开始使用Canvas编程并试图构建一个小游戏。以下是我正在尝试的示例代码。我的意图是:为什么HTML5画布不能在我的代码中清除?
- 创建画布。
- 用一些背景色填充它。
- 画一个圆。
- 清除画布。
- 在不同的位置绘制另一个圆。
下面的代码:
var canvas = document.createElement('canvas');
canvas.width= 400;
canvas.height = 400;
document.body.appendChild(canvas);
var ctx = canvas.getContext('2d');
// 2. Fill background
ctx.fillStyle = 'rgb(30,0,0)';
ctx.fillRect(0,0,400,400);
// 3. Draw circle
ctx.save();
ctx.fillStyle = 'rgba(256,30,30,.8)';
ctx.arc(50,50, 20, 0, Math.PI*2, true);
ctx.fill();
ctx.restore();
// 4. Clear Canvas
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.restore();
// 5. Draw another circle
ctx.save();
ctx.fillStyle = 'rgba(256,30,30,.8)';
ctx.arc(150,150, 20, 0, Math.PI*2, true);
ctx.fill();
ctx.restore();
但正如你所看到的,只有背景色被清除,并在第一圈保持原样。
为什么上面的代码在绘制第二个圆之前未能完全清除画布?
是的。工作! – Veera 2014-09-27 08:19:07