UNPKG

starling-framework

Version:

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

127 lines (109 loc) 4.79 kB
// Class: starling.assets.XmlFactory 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 $extend = require("./../../extend_stub").default; function starling_assets_AssetFactory() {return require("./../../starling/assets/AssetFactory");} function openfl_utils_ByteArray() {return $import(require("openfl/utils/ByteArray"));} function starling_utils_ByteArrayUtil() {return require("./../../starling/utils/ByteArrayUtil");} function starling_textures_TextureAtlas() {return require("./../../starling/textures/TextureAtlas");} function starling_text_BitmapFont() {return require("./../../starling/text/BitmapFont");} function starling_text_TextField() {return require("./../../starling/text/TextField");} function Xml() {return require("./../../Xml");} function js_Boot() {return require("./../../js/Boot");} function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} function openfl_errors_Error() {return $import(require("openfl/errors/Error"));} function Std() {return require("./../../Std");} // Constructor var XmlFactory = function() { (starling_assets_AssetFactory().default).call(this); this.addMimeTypes(["application/xml","text/xml"]); this.addExtensions(["xml","fnt"]); } // Meta XmlFactory.__name__ = "starling.assets.XmlFactory"; XmlFactory.__isInterface__ = false; XmlFactory.__super__ = (starling_assets_AssetFactory().default); XmlFactory.prototype = $extend((starling_assets_AssetFactory().default).prototype, { canHandle: function(reference) { if(!(starling_assets_AssetFactory().default).prototype.canHandle.call(this,reference)) { if(((reference.get_data()) instanceof (openfl_utils_ByteArray().default))) { return (starling_utils_ByteArrayUtil().default).startsWithString(reference.get_data(),"<"); } else { return false; } } else { return true; } }, create: function(reference,helper,onComplete,onError) { var xml = null; var textureAtlasPostProcessor = null; var bitmapFontPostProcessor = null; textureAtlasPostProcessor = function(store) { var name = xml.firstElement().get("imagePath"); var name1 = helper.getNameFromUrl(name); var texture = store.getTexture(name1); if(texture != null) { store.addAsset(name1,new (starling_textures_TextureAtlas().default)(texture,xml)); } else { helper.log("Cannot create atlas: texture '" + name1 + "' is missing."); } }; bitmapFontPostProcessor = function(store1) { var textureName = xml.firstElement().elementsNamed("pages").next().elementsNamed("page").next().get("file"); var textureName1 = helper.getNameFromUrl(textureName); var texture1 = store1.getTexture(textureName1); var fontName = store1.get_registerBitmapFontsWithFontFace() ? xml.elementsNamed("info").next().get("face") : textureName1; if(texture1 != null) { var bitmapFont = new (starling_text_BitmapFont().default)(texture1,xml); store1.addAsset(fontName,bitmapFont); (starling_text_TextField().default).registerCompositor(bitmapFont,fontName); } else { helper.log("Cannot create bitmap font: texture '" + textureName1 + "' is missing."); } }; var bytes = null; try { if(((reference.get_data()) instanceof (Xml().default))) { xml = (js_Boot().default).__cast(reference.get_data() , (Xml().default)); } else { bytes = ((reference.get_data()) instanceof (openfl_utils_ByteArray().default)) ? reference.get_data() : null; if(bytes != null) { xml = (Xml().default).parse(bytes.toString()); } } var rootNode = xml.firstElement().get_nodeName(); if(rootNode == "TextureAtlas") { helper.addPostProcessor(textureAtlasPostProcessor,100); } else if(rootNode == "font") { helper.addPostProcessor(bitmapFontPostProcessor); } onComplete(reference.get_name(),xml); bytes = null; reference.set_data(bytes); } catch( e ) { var e1 = ((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e; if(((e1) instanceof (openfl_errors_Error().default))) { bytes = null; reference.set_data(bytes); onError("Could not parse XML: " + e1.message); return; } else { bytes = null; reference.set_data(bytes); onError("Could not parse XML: " + (Std().default).string(e1)); return; } } } }); XmlFactory.prototype.__class__ = XmlFactory.prototype.constructor = $hxClasses["starling.assets.XmlFactory"] = XmlFactory; // Init // Statics // Export exports.default = XmlFactory;