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);
This commit is contained in:
Lucas Monteverde
2014-01-21 00:19:42 -02:00
parent c9d07c7346
commit 3236ea6b24
+22 -3
View File
@@ -368,6 +368,22 @@ Phaser.Loader.prototype = {
return this; 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. * 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; break;
case 'tilemap': case 'tilemap':
case 'json':
this._xhr.open("GET", this.baseURL + file.url, true); this._xhr.open("GET", this.baseURL + file.url, true);
this._xhr.responseType = "text"; this._xhr.responseType = "text";
if (file.format === Phaser.Tilemap.TILED_JSON) if (!file.format || file.format === Phaser.Tilemap.TILED_JSON)
{ {
this._xhr.onload = function () { this._xhr.onload = function () {
return _this.jsonLoadComplete(_this._fileIndex); return _this.jsonLoadComplete(_this._fileIndex);
@@ -853,7 +869,6 @@ Phaser.Loader.prototype = {
}; };
this._xhr.send(); this._xhr.send();
break; break;
case 'text': case 'text':
case 'script': case 'script':
this._xhr.open("GET", this.baseURL + file.url, true); 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); 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 else
{ {
this.game.cache.addTextureAtlas(file.key, file.url, file.data, data, file.format); this.game.cache.addTextureAtlas(file.key, file.url, file.data, data, file.format);