From 3236ea6b2416a7cffe2acbefd4e6bc1f00ba1add Mon Sep 17 00:00:00 2001 From: Lucas Monteverde Date: Tue, 21 Jan 2014 00:19:42 -0200 Subject: [PATCH] Custom JSON loader Added a method in the Loader that enable the load of custom json files, to be used like a the general settings of the game. loading: game.load.json (key, url); retrieving data from json file: game.cache.getText(key); --- src/loader/Loader.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/loader/Loader.js b/src/loader/Loader.js index 0fc5ac00..b016f306 100644 --- a/src/loader/Loader.js +++ b/src/loader/Loader.js @@ -368,6 +368,22 @@ Phaser.Loader.prototype = { return this; }, + + /** + * Add a custom JSON file to the Loader. + * + * @method Phaser.Loader#json + * @param {string} key - Unique asset key of the json file. + * @param {string} url - URL of the json file. + * @return {Phaser.Loader} This Loader instance. + */ + json: function (key, url) { + + this.addToFileList('json', key, url); + + return this; + + }, /** * Add a binary file to the Loader. It will be loaded via xhr with a responseType of "arraybuffer". You can specify an optional callback to process the file after load. @@ -826,12 +842,12 @@ Phaser.Loader.prototype = { } break; - case 'tilemap': + case 'json': this._xhr.open("GET", this.baseURL + file.url, true); this._xhr.responseType = "text"; - if (file.format === Phaser.Tilemap.TILED_JSON) + if (!file.format || file.format === Phaser.Tilemap.TILED_JSON) { this._xhr.onload = function () { return _this.jsonLoadComplete(_this._fileIndex); @@ -853,7 +869,6 @@ Phaser.Loader.prototype = { }; this._xhr.send(); break; - case 'text': case 'script': this._xhr.open("GET", this.baseURL + file.url, true); @@ -1112,6 +1127,10 @@ Phaser.Loader.prototype = { { this.game.cache.addTilemap(file.key, file.url, data, file.format); } + else if (file.type === 'json') + { + this.game.cache.addText(file.key, file.url, data); + } else { this.game.cache.addTextureAtlas(file.key, file.url, file.data, data, file.format);