diff options
Diffstat (limited to 'site/public/assets/javascripts/vendor/loader.js')
| -rw-r--r-- | site/public/assets/javascripts/vendor/loader.js | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/site/public/assets/javascripts/vendor/loader.js b/site/public/assets/javascripts/vendor/loader.js index 4c1c8cd..b939941 100644 --- a/site/public/assets/javascripts/vendor/loader.js +++ b/site/public/assets/javascripts/vendor/loader.js @@ -1,13 +1,17 @@ var Loader = Loader || (function(){ - function Loader (readyCallback){ + function Loader (readyCallback, view){ this.assets = {}; this.images = []; this.readyCallback = readyCallback; + this.count = 0 + this.view = view + this.loaded = false } // Register an asset as loading Loader.prototype.register = function(s){ this.assets[s] = false; + this.count += 1 } // Signal that an asset has loaded @@ -16,10 +20,18 @@ var Loader = Loader || (function(){ this.assets[s] = true; if (this.loaded) return; + + this.view && this.view.update( this.percentRemaining() ) + if (! this.isReady()) return; this.loaded = true; - this.readyCallback && this.readyCallback(); + if (this.view) { + this.view && this.view.finish(this.readyCallback) + } + else { + this.readyCallback && this.readyCallback(); + } } // (boolean) Is the loader ready? @@ -31,6 +43,11 @@ var Loader = Loader || (function(){ } return true; } + + // (float) Percentage of assets remaining + Loader.prototype.percentRemaining = function(){ + return this.remainingAssets() / this.count + } // (int) Number of assets remaining Loader.prototype.remainingAssets = function(){ @@ -38,7 +55,7 @@ var Loader = Loader || (function(){ for (var s in this.assets) { if (this.assets.hasOwnProperty(s) && this.assets[s] != true) { n++; - console.log('remaining: ' + s); + // console.log('remaining: ' + s); } } return n; |
