如何缩短此图像加载过程?

时间:2014-03-25 15:25:52

标签: javascript image load

此代码加载javascript应用程序的图像:

var sampleImage = new Image();
sampleImage.ready = false;
sampleImage.onload = setAssetReady;
sampleImage.src = IMAGE_FILE;

function setAssetReady(){
this.ready = true;
}

我想找出一种不使用四行代码的方法。

我用答案建议的这种方式(除非我做错了):

var sampleImage = new Image();
sampleImage = loadTheImage(imageFile);

function loadTheImage(imageFile){
this.ready = false;
this.onload = setAssetReady;
this.src = imageFile;
}

function setAssetReady(){
this.ready = true;
}

图像未成功加载,并且当在代码中的不同位置的if语句中评估sampleImage.ready时,返回了一条错误消息:

无法阅读属性'准​​备好'未定义的

同样,我正在为许多图像执行此过程,因此我只需要为每个图像编写一行或两行代码,而不是我原来拥有的四行代码。或者,如果您有任何其他过程建议。

1 个答案:

答案 0 :(得分:0)

function loadTheImage(imageFile){
    sampleImage.ready = false;
    sampleImage.onload = setAssetReady;
    sampleImage.src = imageFile;
};
function setAssetReady(){
    this.ready = true;
};

然后只为每张图片调用loadTheImage