使用jQuery Deferred加载图像并将它们存储在图像存储库中

时间:2015-02-18 13:42:38

标签: javascript jquery image load repository

寻找答案我发现这个线程使用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对象。

我对这个想法完全错了吗?

0 个答案:

没有答案