我正在尋找創建一個簡單的動畫循環使用HTML畫布。每條路徑(或三角形)都是按順序淡入,然後以相同的順序淡出。我已經發現圍繞動畫製作動畫的大量資源,但不能在動畫中連續使用alpha動畫,尤其不能動畫動畫。有任何想法嗎?如何爲一系列html畫布路徑的alpha設置動畫效果?
免責聲明:這是我第一次使用畫布,並且我的JavaScript知識是低劣的。由於我使用的是相同的形狀,因此我將弄清楚如何複製,旋轉和翻譯原始文檔作爲單獨的學習。
更新1:跟蹤我的進度,here is a link to my sandbox。
更新2:我改變了腳本的結構,讓我更好地控制每個路徑。
var elem = document.getElementById('loader');
if (elem && elem.getContext) {
var ctxYellow = elem.getContext('2d');
var ctxOrange = elem.getContext('2d');
var ctxRed = elem.getContext('2d');
var ctxViolet = elem.getContext('2d');
var ctxBlue = elem.getContext('2d');
// Yellow triangle
if (ctxYellow) {
ctxYellow.fillStyle = '#f5ab1c';
ctxYellow.beginPath();
ctxYellow.moveTo(150, 150);
ctxYellow.lineTo(20, 75);
ctxYellow.lineTo(150, 0);
ctxYellow.lineTo(150, 150);
ctxYellow.fill();
ctxYellow.closePath();
}
// Orange triangle
if (ctxOrange) {
ctxOrange.fillStyle = '#f26d23';
ctxOrange.beginPath();
ctxOrange.moveTo(150, 150);
ctxOrange.lineTo(150, 0);
ctxOrange.lineTo(280, 75);
ctxOrange.lineTo(150, 150);
ctxOrange.fill();
ctxOrange.closePath();
}
// Red triangle
if (ctxRed) {
ctxRed.fillStyle = '#cd1f44';
ctxRed.beginPath();
ctxRed.moveTo(150, 150);
ctxRed.lineTo(280, 75);
ctxRed.lineTo(280, 225);
ctxRed.lineTo(150, 150);
ctxRed.fill();
ctxRed.closePath();
}
// Violet triangle
if (ctxViolet) {
ctxViolet.fillStyle = '#851a54';
ctxViolet.beginPath();
ctxViolet.moveTo(150, 150);
ctxViolet.lineTo(280, 225);
ctxViolet.lineTo(150, 300);
ctxViolet.lineTo(150, 150);
ctxViolet.fill();
ctxViolet.closePath();
}
// Blue triangle
if (ctxBlue) {
ctxBlue.fillStyle = '#295a9c';
ctxBlue.beginPath();
ctxBlue.moveTo(150, 150);
ctxBlue.lineTo(150, 300);
ctxBlue.lineTo(20, 225);
ctxBlue.lineTo(150, 150);
ctxBlue.fill();
ctxBlue.closePath();
}
}
你試過'保存'/'加載'方法嗎? – kirilloid 2012-03-10 18:23:45
我沒有。但我不確定爲什麼我想要。 – 2012-03-10 23:25:28
如果你想動畫,沒有其他對象,那麼你會用clearRect足夠。否則,它們可能會有所幫助。 – kirilloid 2012-03-11 07:40:27