UNPKG

openfl

Version:

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

238 lines (221 loc) 8.69 kB
// Class: swf.exporters.swflite.SWFLiteLibrary 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; var $extend = require("./../../../extend_stub").default; function openfl_utils_AssetLibrary() {return require("./../../../openfl/utils/AssetLibrary");} function swf_exporters_swflite_BitmapSymbol() {return require("./../../../swf/exporters/swflite/BitmapSymbol");} function js_Boot() {return require("./../../../js/Boot");} function lime_app_Promise() {return require("./../../../lime/app/Promise");} function swf_exporters_swflite_SWFLite() {return require("./../../../swf/exporters/swflite/SWFLite");} function openfl_utils_Assets() {return require("./../../../openfl/utils/Assets");} function openfl_net_URLLoader() {return require("./../../../openfl/net/URLLoader");} function openfl_net_URLRequest() {return require("./../../../openfl/net/URLRequest");} function lime_math_Vector2() {return require("./../../../lime/math/Vector2");} function lime_graphics_ImageChannel() {return require("./../../../lime/graphics/ImageChannel");} function haxe_ds_StringMap() {return require("./../../../haxe/ds/StringMap");} // Constructor var SWFLiteLibrary = function(id,uuid) { (openfl_utils_AssetLibrary().default).call(this); this.id = id; this.instanceID = uuid != null ? uuid : id; this.alphaCheck = new (haxe_ds_StringMap().default)(); this.imageClassNames = new (haxe_ds_StringMap().default)(); this.rootPath = ""; } // Meta SWFLiteLibrary.__name__ = "swf.exporters.swflite.SWFLiteLibrary"; SWFLiteLibrary.__isInterface__ = false; SWFLiteLibrary.__super__ = (openfl_utils_AssetLibrary().default); SWFLiteLibrary.prototype = $extend((openfl_utils_AssetLibrary().default).prototype, { exists: function(id,type) { if(this.swf == null) { return false; } if(id == "" && type == "MOVIE_CLIP") { return true; } if(type == null || type == "IMAGE" || type == "MOVIE_CLIP") { if(this.swf != null) { return this.swf.hasSymbol(id); } else { return false; } } return false; }, getImage: function(id) { if(this.imageClassNames.exists(id)) { id = this.imageClassNames.get(id); } if(!this.alphaCheck.exists(id)) { var symbol = this.swf.symbols.iterator(); while(symbol.hasNext()) { var symbol1 = symbol.next(); if(((symbol1) instanceof (swf_exporters_swflite_BitmapSymbol().default)) && ((js_Boot().default).__cast(symbol1 , (swf_exporters_swflite_BitmapSymbol().default))).path == id) { var bitmapSymbol = symbol1; if(bitmapSymbol.alpha != null) { var image = (openfl_utils_AssetLibrary().default).prototype.getImage.call(this,id); var alpha = (openfl_utils_AssetLibrary().default).prototype.getImage.call(this,bitmapSymbol.alpha); this.__copyChannel(image,alpha); this.cachedImages.set(id,image); this.cachedImages.remove(bitmapSymbol.alpha); this.alphaCheck.set(id,true); return image; } } } this.alphaCheck.set(id,true); } return (openfl_utils_AssetLibrary().default).prototype.getImage.call(this,id); }, getMovieClip: function(id) { if(this.swf != null) { return this.swf.createMovieClip(id); } else { return null; } }, isLocal: function(id,type) { return true; }, load: function() { var _gthis = this; if(this.id != null) { this.preload.set(this.id,true); } var promise = new (lime_app_Promise().default)(); this.preloading = true; var onComplete = function(data) { _gthis.cachedText.set(_gthis.id,data); _gthis.swf = (swf_exporters_swflite_SWFLite().default).unserialize(data); _gthis.swf.library = _gthis; var bitmapSymbol; var symbol = _gthis.swf.symbols.iterator(); while(symbol.hasNext()) { var symbol1 = symbol.next(); if(((symbol1) instanceof (swf_exporters_swflite_BitmapSymbol().default))) { bitmapSymbol = symbol1; if(bitmapSymbol.className != null) { _gthis.imageClassNames.set(bitmapSymbol.className,bitmapSymbol.path); } } } (swf_exporters_swflite_SWFLite().default).instances.set(_gthis.instanceID,_gthis.swf); _gthis.__load().onProgress($bind(promise,promise.progress)).onError($bind(promise,promise.error)).onComplete(function(_) { _gthis.preloading = false; promise.complete(_gthis); }); }; if((openfl_utils_Assets().default).exists(this.id)) { this.loadText(this.id).onError($bind(promise,promise.error)).onComplete(onComplete); } else { var id = this.paths.keys(); while(id.hasNext()) { var id1 = id.next(); this.preload.set(id1,true); } var path = null; if(this.paths.exists(this.id)) { path = this.paths.get(this.id); } else { path = this.rootPath != null && this.rootPath != "" ? this.rootPath + "/" + this.id : this.id; } var loader = new (openfl_net_URLLoader().default)(); loader.addEventListener("complete",function(_1) { onComplete(loader.data); }); loader.addEventListener("ioError",function(e) { promise.error(e); }); loader.load(new (openfl_net_URLRequest().default)(path)); } return promise.future; }, loadImage: function(id) { var _gthis = this; if(this.imageClassNames.exists(id)) { id = this.imageClassNames.get(id); } if(!this.preloading && !this.alphaCheck.exists(id)) { var symbol = this.swf.symbols.iterator(); while(symbol.hasNext()) { var symbol1 = symbol.next(); if(((symbol1) instanceof (swf_exporters_swflite_BitmapSymbol().default)) && ((js_Boot().default).__cast(symbol1 , (swf_exporters_swflite_BitmapSymbol().default))).path == id) { var bitmapSymbol = [symbol1]; if(bitmapSymbol[0].alpha != null) { var promise = [new (lime_app_Promise().default)()]; this.__loadImage(id).onError(($_=promise[0],$bind($_,$_.error))).onComplete((function(promise1,bitmapSymbol1) { return function(image) { _gthis.__loadImage(bitmapSymbol1[0].alpha).onError(($_=promise1[0],$bind($_,$_.error))).onComplete((function(promise2,bitmapSymbol2) { return function(alpha) { _gthis.__copyChannel(image,alpha); _gthis.cachedImages.set(id,image); _gthis.cachedImages.remove(bitmapSymbol2[0].alpha); _gthis.alphaCheck.set(id,true); promise2[0].complete(image); }; })(promise1,bitmapSymbol1)); }; })(promise,bitmapSymbol)); return promise[0].future; } else { this.alphaCheck.set(id,true); } } } } return (openfl_utils_AssetLibrary().default).prototype.loadImage.call(this,id); }, unload: function() { if(this.swf == null) { return; } if((swf_exporters_swflite_SWFLite().default).instances.exists(this.instanceID) && (swf_exporters_swflite_SWFLite().default).instances.get(this.instanceID) == this.swf) { (swf_exporters_swflite_SWFLite().default).instances.remove(this.instanceID); } var bitmap; var symbol = this.swf.symbols.iterator(); while(symbol.hasNext()) { var symbol1 = symbol.next(); if(((symbol1) instanceof (swf_exporters_swflite_BitmapSymbol().default))) { bitmap = symbol1; (openfl_utils_Assets().default).cache.removeBitmapData(bitmap.path); } } }, __copyChannel: function(image,alpha) { if(alpha != null) { image.copyChannel(alpha,alpha.get_rect(),new (lime_math_Vector2().default)(),(lime_graphics_ImageChannel().default).RED,(lime_graphics_ImageChannel().default).ALPHA); } image.buffer.premultiplied = true; image.set_premultiplied(false); }, __fromManifest: function(manifest) { this.rootPath = manifest.rootPath; (openfl_utils_AssetLibrary().default).prototype.__fromManifest.call(this,manifest); this.bytesTotal = 0; var id = this.paths.keys(); while(id.hasNext()) { var id1 = id.next(); this.bytesTotal += this.sizes.get(id1); } }, __load: function() { return (openfl_utils_AssetLibrary().default).prototype.load.call(this); }, __loadImage: function(id) { return (openfl_utils_AssetLibrary().default).prototype.loadImage.call(this,id); } }); SWFLiteLibrary.prototype.__class__ = SWFLiteLibrary.prototype.constructor = $hxClasses["swf.exporters.swflite.SWFLiteLibrary"] = SWFLiteLibrary; // Init // Statics SWFLiteLibrary.__meta__ = { obj : { SuppressWarnings : ["checkstyle:FieldDocComment"]}} // Export exports.default = SWFLiteLibrary;