8

मैं जावास्क्रिप्ट + कैनवास का उपयोग कर एक गेम बना रहा हूं। मैं कई बारimage. छवि पूरी तरह से लोड होने से पहले आग लगाना

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'; 
} 

इस कोड को सुनिश्चित करने के लिए नीचे दिए गए कोड का उपयोग ठीक काम करता है, esp। जब छवियों को कैश किया जाता है। हालांकि, पहली बार लोड होने पर, यह INDEX_SIZE_ERR देता है: DOM अपवाद 1 जो मुझे मिली & छवि की चौड़ाई answer में क्विक्रेडफ़ॉक्स द्वारा सुझाए गए अनुसार उपलब्ध नहीं है ... लेकिन फिर यहां drawImage को कॉल किया जाता है केवल तभी जब सभी छवियों को लोड किया जाता है? त्रुटि प्राथमिक रूप से मोबाइल उपकरणों में होती है

उत्तर

8

आपको लोड हैंडलर को संदर्भ प्रदान करना होगा। अन्यथा, फ़ंक्शन तुरंत निष्पादित होता है। उपयोग करें:

images[i].onload = onImgLoad; 
+0

धन्यवाद। मेरे हिस्से पर सकल निरीक्षण! – Ani

+0

मैं सोच रहा था कि मेरी विधि तुरंत क्यों निष्पादित हुई। इस समाधान के लिए धन्यवाद! जावास्क्रिप्ट के लिए नया कोई भी व्यक्ति के रूप में यह स्पष्ट नहीं है, हालांकि मैं आपकी टिप्पणी के कारण इसे समझता हूं :) – jonas

संबंधित मुद्दे