寻找答案我发现这个线程使用jQuery延迟加载几个图像并等待继续:
Wait for image to be loaded before going on
我想在我的代码中实现这一点,但有一点我还不明白。我可以在哪个上下文或范围中使用这些图像对象。或者我如何调整上述线程的答案,以便在图像存储库中提供这些图像。
详细说明(如上面的主题所述):
var imagesLoaded = false;
var imageRepository = new function() {
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() {
imagesLoaded = true;
});
}
在imageRepository中可以访问函数loadSprite()中使用 new 创建的图像(精灵),例如imageRepository.sprite1?
我的想法是做类似
的事情var imageRepository = new function() {
...
this.sprite1 = loadSprite('1.png');
}
但loadSprite()返回延迟的promise对象。
我对这个想法完全错了吗?