我正在开发一个闪存卡网页,我想知道预加载的图像何时加载或遇到错误。一旦我有了每张图片的状态,我就会采取一些行动。
我将我的代码基于stackoverflow帖子等待图像加载后再继续
function loadSprite(src) {
var deferred = $.Deferred();
var sprite = new Image();
sprite.onload = function() {
deferred.resolve();
};
sprite.src = src;
return deferred.promise();
}
和加载精灵的函数
var loaders = [];
loaders.push(loadSprite('1.png'));
loaders.push(loadSprite('2.png'));
loaders.push(loadSprite('3.png'));
$.when.apply(null, loaders).done(function() {
// callback when everything was loaded
});
我已修改 loadSprite 解析以返回状态结果:
deferred.resolve("STATUS RESULT");
和什么时候
$.when.apply(null, loaders).done(function("STATUS RESULT") {
// callback when everything was loaded
//Do something with "STATUS RESULT"
});
问题是我无法为每次调用分离出“状态结果”loaders.push(loadSprite(file to load));
那是我只得到一个变量而不是每次调用loadSprite
我没想到我上面的代码可以工作,这更像是对我自己的一个示范,我可以把一些东西传回去。
我无法解决这个问题,感谢所有帮助。谢谢,