Phaser.Cache = function (game){ this.game = game; } ; Phaser.Cache.prototype = { game: null , _canvases: { } , _images: { } , _sounds: { } , _text: { } , addCanvas: function (key, canvas, context){ this._canvases[key] = { canvas: canvas, context: context} ; } , addSpriteSheet: function (key, url, data, frameWidth, frameHeight, frameMax){ this._images[key] = { url: url, data: data, spriteSheet: true , frameWidth: frameWidth, frameHeight: frameHeight} ; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); this._images[key].frameData = Phaser.Animation.Parser.spriteSheet(this.game, key, frameWidth, frameHeight, frameMax); } , addTextureAtlas: function (key, url, data, atlasData, format){ this._images[key] = { url: url, data: data, spriteSheet: true } ; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); if (format == Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY) { this._images[key].frameData = Phaser.Animation.Parser.JSONData(this.game, atlasData, key); } else if (format == Phaser.Loader.TEXTURE_ATLAS_JSON_HASH) { this._images[key].frameData = Phaser.Animation.Parser.JSONDataHash(this.game, atlasData, key); } else if (format == Phaser.Loader.TEXTURE_ATLAS_XML_STARLING) { this._images[key].frameData = Phaser.Animation.Parser.XMLData(this.game, atlasData, key); } } , addImage: function (key, url, data){ this._images[key] = { url: url, data: data, spriteSheet: false } ; PIXI.BaseTextureCache[key] = new PIXI.BaseTexture(data); PIXI.TextureCache[key] = new PIXI.Texture(PIXI.BaseTextureCache[key]); } , addSound: function (key, url, data, webAudio, audioTag){ if (typeof webAudio === "undefined") { webAudio = true ; } if (typeof audioTag === "undefined") { audioTag = false ; } var locked = this.game.sound.touchLocked; var decoded = false ; if (audioTag) { decoded = true ; } this._sounds[key] = { url: url, data: data, locked: locked, isDecoding: false , decoded: decoded, webAudio: webAudio, audioTag: audioTag} ; } , reloadSound: function (key){ var _this = this; if (this._sounds[key]) { _AN_Write_src("src", this._sounds[key].data, false , _AN_Read_url("url", this._sounds[key])); this._sounds[key].data.addEventListener('canplaythrough', function (){ return _this.reloadSoundComplete(key); } , false ); _AN_Call_load('load', this._sounds[key].data); } } , reloadSoundComplete: function (key){ if (this._sounds[key]) { this._sounds[key].locked = false ; this.onSoundUnlock.dispatch(key); } } , updateSound: function (key, property, value){ if (this._sounds[key]) { this._sounds[key][property] = value; } } , decodedSound: function (key, data){ this._sounds[key].data = data; this._sounds[key].decoded = true ; this._sounds[key].isDecoding = false ; } , addText: function (key, url, data){ this._text[key] = { url: url, data: data} ; } , getCanvas: function (key){ if (this._canvases[key]) { return this._canvases[key].canvas; } return null ; } , getImage: function (key){ if (this._images[key]) { return this._images[key].data; } return null ; } , getFrameData: function (key){ if (this._images[key] && this._images[key].frameData) { return this._images[key].frameData; } return null ; } , getSound: function (key){ if (this._sounds[key]) { return this._sounds[key]; } return null ; } , getSoundData: function (key){ if (this._sounds[key]) { return this._sounds[key].data; } return null ; } , isSoundDecoded: function (key){ if (this._sounds[key]) { return this._sounds[key].decoded; } } , isSoundReady: function (key){ return (this._sounds[key] && this._sounds[key].decoded == true && this._sounds[key].locked == false ); } , isSpriteSheet: function (key){ if (this._images[key]) { return this._images[key].spriteSheet; } return false ; } , getText: function (key){ if (this._text[key]) { return this._text[key].data; } return null ; } , getKeys: function (array){ var output = [] ; for (var item in array){ output.push(item); } return output; } , getImageKeys: function (){ return this.getKeys(this._images); } , getSoundKeys: function (){ return this.getKeys(this._sounds); } , getTextKeys: function (){ return this.getKeys(this._text); } , removeCanvas: function (key){ delete this._canvases[key]; } , removeImage: function (key){ delete this._images[key]; } , removeSound: function (key){ delete this._sounds[key]; } , removeText: function (key){ delete this._text[key]; } , destroy: function (){ for (var item in this._canvases){ delete this._canvases[item.key]; } for (var item in this._images){ delete this._images[item.key]; } for (var item in this._sounds){ delete this._sounds[item.key]; } for (var item in this._text){ delete this._text[item.key]; } } } ;