![](/img/trans.png)
[英]Animating Image Object Opacity in Canvas Using GreenSock's TweenLite
[英]How to animate image in a canvas using tweenlite
現在已經搜索了一段時間,我還沒有看過任何有關如何對畫布中繪制的圖像進行動畫處理(從右向左連續循環)的文章。
var context = document.getElementById('my-canvas').getContext('2d');
var cloud = new Image();
cloud.src = 'images/cloud.png';
cloud.onload = function () {
context.drawImage(cloud, 0, 0)
TweenLite.to({x:0,y:0}, 2, {x: 200, y: 200});
}
我怎么了?
編輯:
像這樣,但使用tweenlite: 小提琴
您的第一個參數是錯誤的, 根據其文檔 ,它必須是目標元素/對象:
TweenLite.to(target, duration, vars);
其中target
是一個對象/元素, duration
是一個數字,而vars
是一個對象。
例:
TweenLite.to(canvas, 2, {x: 200, y:200});
只需注意,如果您打算將canvas元素用作目標,則最好在加載時直接為圖像設置動畫。
如果您打算在畫布的位圖上移動它而不移動畫布本身,則需要使用一個自定義對象(據我了解他們的文檔)作為保存f.ex的目標。 x
和y
屬性,並使用onUpdate
回調機制。 檢查他們的文檔以獲取所有詳細信息。
var myObj = {
x: 0, // start position
y: 0,
image: cloud
};
TweenLite.to(myObj, 2, {x: 200, y:200, onUpdate: drawImage});
function drawImage() {
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
context.drawImage(myObj.image, myObj.x, myObj,y);
}
只需用上面的代碼替換onload
處理程序中的內容即可。
免責聲明:高度未經測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.