Phaser.LoaderParser = { bitmapFont: function (game, xml, cacheKey){ if (!_AN_Call_getelementsbytagname('getElementsByTagName', xml, 'font')) { console.warn("Phaser.LoaderParser.bitmapFont: Invalid XML given, missing tag"); return ; } var texture = PIXI.TextureCache[cacheKey]; var data = { } ; var info = _AN_Call_getelementsbytagname("getElementsByTagName", xml, "info")[0]; var common = _AN_Call_getelementsbytagname("getElementsByTagName", xml, "common")[0]; data.font = _AN_Read_nodevalue("nodeValue", info.attributes.getNamedItem("face")); data.size = parseInt(_AN_Read_nodevalue("nodeValue", info.attributes.getNamedItem("size")), 10); data.lineHeight = parseInt(_AN_Read_nodevalue("nodeValue", common.attributes.getNamedItem("lineHeight")), 10); data.chars = { } ; var letters = _AN_Call_getelementsbytagname("getElementsByTagName", xml, "char"); for (var i = 0; i < _AN_Read_length("length", letters); i++ ){ var charCode = parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("id")), 10); var textureRect = { x: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("x")), 10), y: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("y")), 10), width: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("width")), 10), height: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("height")), 10)} ; PIXI.TextureCache[charCode] = new PIXI.Texture(texture, textureRect); data.chars[charCode] = { xOffset: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("xoffset")), 10), yOffset: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("yoffset")), 10), xAdvance: parseInt(_AN_Read_nodevalue("nodeValue", letters[i].attributes.getNamedItem("xadvance")), 10), kerning: { } , texture: new PIXI.Texture(texture, textureRect)} ; } var kernings = _AN_Call_getelementsbytagname("getElementsByTagName", xml, "kerning"); for (i = 0; i < _AN_Read_length("length", kernings); i++ ){ var first = parseInt(_AN_Read_nodevalue("nodeValue", kernings[i].attributes.getNamedItem("first")), 10); var second = parseInt(_AN_Read_nodevalue("nodeValue", kernings[i].attributes.getNamedItem("second")), 10); var amount = parseInt(_AN_Read_nodevalue("nodeValue", kernings[i].attributes.getNamedItem("amount")), 10); data.chars[second].kerning[first] = amount; } PIXI.BitmapText.fonts[data.font] = data; } } ;