UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

205 lines (187 loc) 7.44 kB
// Class: lime.utils.Preloader var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $hxEnums = require("./../../hxEnums_stub").default; var $import = require("./../../import_stub").default; var $bind = require("./../../bind_stub").default; function lime_utils_Log() {return require("./../../lime/utils/Log");} function Std() {return require("./../../Std");} function lime_utils_Assets() {return require("./../../lime/utils/Assets");} function haxe_ds_StringMap() {return require("./../../haxe/ds/StringMap");} function haxe_ds_ObjectMap() {return require("./../../haxe/ds/ObjectMap");} function lime_app__$Event_$Int_$Int_$Void() {return require("./../../lime/app/_Event_Int_Int_Void");} function lime_app__$Event_$Void_$Void() {return require("./../../lime/app/_Event_Void_Void");} // Constructor var Preloader = function() { this.bytesTotalCache = new (haxe_ds_StringMap().default)(); this.bytesLoadedCache2 = new (haxe_ds_StringMap().default)(); this.bytesLoadedCache = new (haxe_ds_ObjectMap().default)(); this.onProgress = new (lime_app__$Event_$Int_$Int_$Void().default)(); this.onComplete = new (lime_app__$Event_$Void_$Void().default)(); this.bytesLoaded = 0; this.bytesTotal = 0; this.libraries = []; this.libraryNames = []; this.onProgress.add($bind(this,this.update)); } // Meta Preloader.__name__ = "lime.utils.Preloader"; Preloader.__isInterface__ = false; Preloader.prototype = { addLibrary: function(library) { this.libraries.push(library); }, addLibraryName: function(name) { if(this.libraryNames.indexOf(name) == -1) { this.libraryNames.push(name); } }, load: function() { var _gthis = this; var _g = 0; var _g1 = this.libraries; while(_g < _g1.length) { var library = _g1[_g]; ++_g; this.bytesTotal += library.bytesTotal; } this.loadedLibraries = -1; this.preloadStarted = false; var _g2 = 0; var _g3 = this.libraries; while(_g2 < _g3.length) { var library1 = [_g3[_g2]]; ++_g2; (lime_utils_Log().default).verbose("Preloading asset library",{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 134, className : "lime.utils.Preloader", methodName : "load"}); library1[0].load().onProgress((function(library2) { return function(loaded,total) { if(!_gthis.bytesLoadedCache.exists(library2[0])) { _gthis.bytesLoaded += loaded; } else { _gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache.get(library2[0]); } _gthis.bytesLoadedCache.set(library2[0],loaded); if(!_gthis.simulateProgress) { _gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal); } }; })(library1)).onComplete((function(library3) { return function(_) { if(!_gthis.bytesLoadedCache.exists(library3[0])) { _gthis.bytesLoaded += library3[0].bytesTotal; } else { _gthis.bytesLoaded += (Std().default).int(library3[0].bytesTotal) - _gthis.bytesLoadedCache.get(library3[0]); } _gthis.loadedAssetLibrary(); }; })(library1)).onError((function() { return function(e) { (lime_utils_Log().default).error(e,{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 170, className : "lime.utils.Preloader", methodName : "load"}); }; })()); } var _g4 = 0; var _g5 = this.libraryNames; while(_g4 < _g5.length) { var name = _g5[_g4]; ++_g4; this.bytesTotal += 200; } this.loadedLibraries++; this.preloadStarted = true; this.updateProgress(); }, loadedAssetLibrary: function(name) { this.loadedLibraries++; var current = this.loadedLibraries; if(!this.preloadStarted) { ++current; } var totalLibraries = this.libraries.length + this.libraryNames.length; if(name != null) { (lime_utils_Log().default).verbose("Loaded asset library: " + name + " [" + current + "/" + totalLibraries + "]",{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 197, className : "lime.utils.Preloader", methodName : "loadedAssetLibrary"}); } else { (lime_utils_Log().default).verbose("Loaded asset library [" + current + "/" + totalLibraries + "]",{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 201, className : "lime.utils.Preloader", methodName : "loadedAssetLibrary"}); } this.updateProgress(); }, start: function() { if(this.complete || this.simulateProgress || !this.preloadComplete) { return; } this.complete = true; this.onComplete.dispatch(); }, update: function(loaded,total) { }, updateProgress: function() { var _gthis = this; if(!this.simulateProgress) { this.onProgress.dispatch(this.bytesLoaded,this.bytesTotal); } if(this.loadedLibraries == this.libraries.length && !this.initLibraryNames) { this.initLibraryNames = true; var _g = 0; var _g1 = this.libraryNames; while(_g < _g1.length) { var name = [_g1[_g]]; ++_g; (lime_utils_Log().default).verbose("Preloading asset library: " + name[0],{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 239, className : "lime.utils.Preloader", methodName : "updateProgress"}); (lime_utils_Assets().default).loadLibrary(name[0]).onProgress((function(name1) { return function(loaded,total) { if(total > 0) { if(!_gthis.bytesTotalCache.exists(name1[0])) { _gthis.bytesTotalCache.set(name1[0],total); _gthis.bytesTotal += total - 200; } if(loaded > total) { loaded = total; } if(!_gthis.bytesLoadedCache2.exists(name1[0])) { _gthis.bytesLoaded += loaded; } else { _gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache2.get(name1[0]); } _gthis.bytesLoadedCache2.set(name1[0],loaded); if(!_gthis.simulateProgress) { _gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal); } } }; })(name)).onComplete((function(name2) { return function(library) { var total1 = 200; if(_gthis.bytesTotalCache.exists(name2[0])) { total1 = _gthis.bytesTotalCache.get(name2[0]); } if(!_gthis.bytesLoadedCache2.exists(name2[0])) { _gthis.bytesLoaded += total1; } else { _gthis.bytesLoaded += total1 - _gthis.bytesLoadedCache2.get(name2[0]); } _gthis.loadedAssetLibrary(name2[0]); }; })(name)).onError((function() { return function(e) { (lime_utils_Log().default).error(e,{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 293, className : "lime.utils.Preloader", methodName : "updateProgress"}); }; })()); } } if(!this.simulateProgress && this.loadedLibraries == this.libraries.length + this.libraryNames.length) { if(!this.preloadComplete) { this.preloadComplete = true; (lime_utils_Log().default).verbose("Preload complete",{ fileName : "../node_modules/lime/src/lime/utils/Preloader.hx", lineNumber : 306, className : "lime.utils.Preloader", methodName : "updateProgress"}); } this.start(); } } }; Preloader.prototype.__class__ = Preloader.prototype.constructor = $hxClasses["lime.utils.Preloader"] = Preloader; // Init // Statics // Export exports.default = Preloader;