本篇文章帶給大家的內容是關於HTML5如何繪製動畫? (程式碼實例) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
雖然canvas的API並未直接提供支援動畫的方法,但就其本身而言,在canvas中實現動畫效果也很簡單:只需要持續的更新並重繪畫布就行了。這種持續的更新並重繪就叫做動畫循環,它是所有動畫的核心邏輯。
在canvas中實作動畫,首先需要初始化畫布上的物件。然後,啟動一個動畫循環來更新畫布、清除畫布、重繪畫布,再請求下一個新的動畫影格。
接下來透過一個簡單實例,來看看canvas動畫的實作過程。這個實例以動畫的方式,實作一個旋轉的八卦圖。程式碼如下:
function clear() { context.clearRect(0, 0, canvas.width, canvas.height); } function rotate() { context.rotate(Math.PI/30); // 每分钟旋转一周 } function draw () { // 绘制白色半圆 context.beginPath(); context.arc(0, 0, 80, 1.5*Math.PI, Math.PI/2, false); context.fillStyle = "white"; context.closePath(); context.fill(); // 绘制黑色半圆 context.beginPath(); context.arc(0, 0, 80, Math.PI/2, 1.5*Math.PI, false); context.fillStyle = "black"; context.closePath(); context.fill(); // 绘制黑色小圆 context.beginPath(); context.arc(0, 40, 40, 0, Math.PI*2, true); context.fillStyle = "black"; context.closePath(); context.fill(); // 绘制白色小圆 context.beginPath(); context.arc(0, -40, 40, 0, Math.PI*2, true); context.fillStyle = "white"; context.closePath(); context.fill(); // 绘制白色小圆心 context.beginPath(); context.arc(0, -40, 5, 0, Math.PI*2, true); context.fillStyle = "black"; context.closePath(); context.fill(); // 绘制黑色小圆心 context.beginPath(); context.arc(0, 40, 5, 0, Math.PI*2, true); context.fillStyle = "white"; context.closePath(); context.fill(); } function drawStage() { rotate(); // 更新 clear(); // 清除 draw(); // 重绘 } window.onload = function(){ canvas = document.getElementById('canvas'); context = canvas.getContext('2d'); context.translate(canvas.width/2, canvas.height/2); setInterval(drawStage, 100); };
上述程式碼,當頁面載入完成後,先進行初始化,然後呼叫setInterval(drawStage, 100)方法啟動動畫迴圈,在動畫迴圈中,每隔100ms會呼叫一次drawStage ()函數,來執行更新畫布、清除畫布、重繪畫布的操作,以實現動畫效果。運作結果如圖 4‑37 所示:
當然,這裡只是為了示範實作動畫的原理而已,所以實例相對簡單。其實,Canvas中的動畫可以很簡單,也可以很複雜。不管簡單還是複雜,其基本原理是完全相同的。
以上就是對HTML5如何繪製動畫? (程式碼實例) 的完整介紹,如果您想了解更多有關Html5影片教學,請追蹤PHP中文網。
以上是HTML5如何繪製動畫? (程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!