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