0
我有一個問題調用一個新的圖像對象的onload()函數時立即將該圖像設置爲對象屬性。我的解析器告訴我,imageMap [featureId] .onload不是一個函數。我不明白爲什麼imageMap [featureId]不是圖像本身的同義詞? resourceList被用作preloadResource()的參數。我在其他地方有一個setinterval,等待加載的計數等於資源計數。請有任何想法嗎?圖像onload調用對象屬性
var resourceList = ["path.png","path.png","path.png","path.png"];
var loadedResource = 0;
function preloadResource(resArr)
{
var buildIndex = 1;
for (i = 1; i <= resArr.length; i++)
{
var featureId = "feature" + buildIndex;
imageMap[featureId] = new Image();
imageMap[featureId].path = resArr[(i - 1)];
buildIndex++;
imageMap[featureId].onload(function() {loadedResource++;})
imageMap[featureId].src = resArr[(i -1)];
}
}
_「我有一個的setInterval其他地方等待加載計數等於資源計數」 _ - 這是一個相當糟糕的實現了。相反,你應該在你的onload回調函數中處理它 - 讓它爲每個加載的圖像增加計數器,然後讓它檢查計數器是否到達目標,如果是的話觸發你想要完成的任何事情。 – CBroe
而這個錯誤是因爲你正在像使用'imageMap [featureId] .onload(...)'這樣的函數調用onload函數,這是一個函數調用,它試圖執行函數'imageMap [featureId] .onload'。 _Assigning_處理函數通過'.onload = function ...'加載作品...' – CBroe
嗨CBroe,是的,這是問題謝謝。關於onload的INSIDE檢查也是正確的。這更快,更可讀。 – KolKurtz