8

我正在使用javascript + canvas進行遊戲。 我用下面的代碼,以確保image.onload在圖像完全加載之前觸發

var imgLoaded = 0; 
var imgToLoad = multiImgs; 
var onImgLoad = function() 
{ 
    imgLoaded++; 
    if(imgLoaded == imgToLoad) 
    { 
     ctx.drawImage() 
    } 
} 

for(var i = 0; i < multiImgs; i++) 
{ 
    images[i] = new Image(); 
    images[i].onload = onImgLoad(); 
    images[i].src = 'images/'+i+'.png'; 
} 

此代碼有時工作正常,電除塵器。當圖像被緩存。但是,第一次加載時,它有時會給出INDEX_SIZE_ERR:DOM異常1 ,我發現這是由於高度&圖像的寬度不可用,如Quickredfox在此answer中所建議的那樣...但在此處調用drawImage只有當所有的圖像加載? 該錯誤主要發生在移動設備上

回答

8

您必須向負載處理程序提供參考。否則,該函數立即執行。使用方法:

images[i].onload = onImgLoad; 
+0

謝謝。對我來說總的監督! – Ani 2012-02-10 13:15:20

+0

我想知道爲什麼我的方法馬上被執行了。感謝您的解決方案!至於JavaScript的新手,這不是那麼明顯,雖然我理解它,因爲你的評論:) – jonas 2015-05-06 11:25:41

相關問題