Phaser.LoaderParser = { bitmapFont: function (game, xml, cacheKey, xSpacing, ySpacing){ var data = { } ; var info = _AN_Call_getelementsbytagname('getElementsByTagName', xml, 'info')[0]; var common = _AN_Call_getelementsbytagname('getElementsByTagName', xml, 'common')[0]; data.font = _AN_Call_getattribute('getAttribute', info, 'face'); data.size = parseInt(_AN_Call_getattribute('getAttribute', info, 'size'), 10); data.lineHeight = parseInt(_AN_Call_getattribute('getAttribute', common, 'lineHeight'), 10) + ySpacing; 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_Call_getattribute('getAttribute', letters[i], 'id'), 10); var textureRect = new PIXI.Rectangle(parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'x'), 10), parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'y'), 10), parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'width'), 10), parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'height'), 10)); data.chars[charCode] = { xOffset: parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'xoffset'), 10), yOffset: parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'yoffset'), 10), xAdvance: parseInt(_AN_Call_getattribute('getAttribute', letters[i], 'xadvance'), 10) + xSpacing, kerning: { } , texture: PIXI.TextureCache[cacheKey] = new PIXI.Texture(PIXI.BaseTextureCache[cacheKey], textureRect)} ; } var kernings = _AN_Call_getelementsbytagname('getElementsByTagName', xml, 'kerning'); for (i = 0; i < _AN_Read_length('length', kernings); i++ ){ var first = parseInt(_AN_Call_getattribute('getAttribute', kernings[i], 'first'), 10); var second = parseInt(_AN_Call_getattribute('getAttribute', kernings[i], 'second'), 10); var amount = parseInt(_AN_Call_getattribute('getAttribute', kernings[i], 'amount'), 10); data.chars[second].kerning[first] = amount; } PIXI.BitmapText.fonts[cacheKey] = data; } } ;