當我試圖完成類似於您可能會在卡通雜燴(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