PHP Classes

File: kinetic/js/libs/Loader.js

Recommend this page to a friend!
  Classes of Vitalij Mik   PHP Tiled to CraftyJS   kinetic/js/libs/Loader.js   Download  
File: kinetic/js/libs/Loader.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: PHP Tiled to CraftyJS
Convert game level tiled maps CraftyJS components
Author: By
Last change:
Date: 2 years ago
Size: 2,356 bytes
 

Contents

Class file image Download
Kinetic.Loader = function(files){ this.files = files; this.progressFunc = null; this.errorFunc = null; this.completeFunc = null; Kinetic.Assets = {}; this.extensions ={ 'jpg':'image', 'png':'image', 'gif':'image', 'jpeg':'image', 'bmp':'image' } } Kinetic.Loader.prototype.onProgress = function(progress){ this.progressFunc = progress; } Kinetic.Loader.prototype.onError = function(error){ this.errorFunc = error; } Kinetic.Loader.prototype.onComplete = function(complete){ this.completeFunc = complete; } Kinetic.Loader.prototype.load = function(){ var i = 0,l=this.files.length,total = l,loaded = 0; var that = this; function progress(e){ ++loaded; var src = e.target.src; if(that.progressFunc) that.progressFunc({ loaded:loaded, total:total, percent:loaded/total*100, src:src, name:src.substr(src.lastIndexOf('/') + 1).toLowerCase() }); if(loaded >= total && that.completeFunc) that.completeFunc(); } function error(e){ loaded++; var src = e.target.src; if(that.errorFunc) that.errorFunc({ loaded:loaded, total:total, percent:loaded/total*100, src:src, name:src.substr(src.lastIndexOf('/') + 1).toLowerCase() }); if(loaded >= total && that.completeFunc) that.completeFunc(); } for(;i<l;++i){ var file = this.files[i],fileObj =null,src,ext,id; if(typeof file === "object"){ src = file.src; id = file.id; ext = src.substr(src.lastIndexOf('.') + 1).toLowerCase(); } if(this.extensions[ext] == 'image'){ fileObj = new Image(); if(!Kinetic.Assets[id]) Kinetic.Assets[id] = fileObj; fileObj.onload = function(e){ progress(e); } fileObj.onerror = function(e){ error(e); } fileObj.src = src; }else if(this.extensions[ext] == 'audio'){ //TODO }else if(this.extensions[ext] == 'video'){ //TODO }else{ total--; continue; } } }