当我试图完成类似于您可能会在卡通杂烩(example link),其中形状作为屏蔽层的质地下面部分保持静态看到效果清除画布。我开始玩弄这个想法通过创建一个渲染循环,清除画布,将其保存的状态,然后绘制一个矩形裁剪区域,然后绘制背景纹理占据画布的整个宽度和高度。问题动画剪辑区域
这里的绘制函数:
function draw()
{
context.clearRect(0,0, 640, 480);
context.save();
x += velocityX;
y += velocityY;
context.rect(x, y, 40, 40);
context.clip();
context.drawImage(image, 0,0, 640, 480);
context.restore();
}
基本上它只是运行在每秒60帧,更新所述矩形的位置和剪切剪切区域内的背景图像。 (我知道代码的结构并不完美,但我只是试着看看这种效果是否可以在画布上实现)。
我似乎遇到的问题是,从循环的前一次迭代的剪裁区域徘徊创建您在上面的小提琴看到怪异的效果。我试图重新排序的draw()
步循环的一切,但似乎工作的唯一的事情是canvas.width = canvas.width
伎俩清除屏幕。我想,以避免清屏的这种方法,因为它似乎并不在IE工作,而且也破坏了帆布state
。 clearRect()
应该可以清除屏幕。我究竟做错了什么?
视频不可用。 – Niels 2013-02-22 16:50:31
对不起,更新了http://youtu.be/EDcICGLpybQ?t=29s的链接,对我来说工作正常 – 2013-02-22 16:53:36
也没有提供,不说明为什么。只是不可用。 – Niels 2013-02-22 16:55:26