2013-04-07 21 views
0

我有一個圖像(箭頭),顯示當用戶與畫布上的對象進行交互。這個圖像(箭頭)告訴用戶在哪個方向拖動對象。是否可以爲圖像創建淡入效果?是否可以爲顯示在畫布上的圖像創建淡入效果?

下面的代碼

var curvedArrow = new Image(); 
    curvedArrow.src = "img/curvedArrow.png"; 
// curvedArrow.onload = function() { 
     context.drawImage(curvedArrow, 15, 45, 35, 30); 
// }; 

注:我叫的drawImage()沒有onload事件,作爲圖像沒有在畫布上顯示出來,如果我內的onload

回答

1

所謂的drawImage設置src.onload監聽器,這樣它就會啓動。

var curvedArrow = new Image(); 
    curvedArrow.addEventListener('load', function() { 
     context.drawImage(curvedArrow, 15, 45, 35, 30); 
    }); 
    curvedArrow.src = "img/curvedArrow.png"; 

然後你可以使用的時間間隔和globalAlpha褪色的圖像:

var curvedArrow = new Image(); 
    curvedArrow.addEventListener('load', function() { 
     context.globalAlpha = 0; 
     var imgFadeInter = setInterval(function(){ 
      clearContext(); // a function that clears the canvas 
      context.globalAlpha += 0.01; 
      context.drawImage(curvedArrow, 15, 45, 35, 30); 
      if(context.globalAlpha == 1){ 
       clearInterval(imgFadeInter); 
      } 
     }, 16); // 16ms because jQuery says so   
    }); 
    curvedArrow.src = "img/curvedArrow.png"; 
+0

我試過onload事件後設置的.src,但仍然沒有使圖像目標負載。關於clearContext()函數,我需要清除畫布上的所有內容嗎?像context.reset()? – devcoder 2013-04-07 02:02:05

+0

你需要清除每一幀或幀重疊。我建議clearRect – Fresheyeball 2013-04-07 02:13:31

+0

我更新了關於onload問題的答案。在jQuery中,我使用'$(img).on('load',...'並忘記'.onload'不是等價的。 – Fresheyeball 2013-04-08 16:00:30

相關問題