blob: 948a73c4127c57e746fcf6e42e424c0053773884 [file] [log] [blame]
var ImagePreloader = (function(){
function imageLoaded(){
this.loadedAssets += 1;
if(this.loadedAssets === this.totalImages){
if(this.imagesLoadedCb) {
this.imagesLoadedCb(null);
}
}
}
function getAssetsPath(assetData){
var path = '';
if(this.assetsPath){
var imagePath = assetData.p;
if(imagePath.indexOf('images/') !== -1){
imagePath = imagePath.split('/')[1];
}
path = this.assetsPath + imagePath;
} else {
path = this.path;
path += assetData.u ? assetData.u : '';
path += assetData.p;
}
return path;
}
function loadImage(path){
var img = createTag('img');
img.addEventListener('load', imageLoaded.bind(this), false);
img.addEventListener('error', imageLoaded.bind(this), false);
img.src = path;
}
function loadAssets(assets, cb){
this.imagesLoadedCb = cb;
this.totalAssets = assets.length;
var i;
for(i=0;i<this.totalAssets;i+=1){
if(!assets[i].layers){
loadImage.bind(this)(getAssetsPath.bind(this)(assets[i]));
this.totalImages += 1;
}
}
}
function setPath(path){
this.path = path || '';
}
function setAssetsPath(path){
this.assetsPath = path || '';
}
function destroy() {
this.imagesLoadedCb = null;
}
return function ImagePreloader(){
this.loadAssets = loadAssets;
this.setAssetsPath = setAssetsPath;
this.setPath = setPath;
this.destroy = destroy;
this.assetsPath = '';
this.path = '';
this.totalAssets = 0;
this.totalImages = 0;
this.loadedAssets = 0;
this.imagesLoadedCb = null;
};
}());