/* * To change this template, choose Tools | Templates * and open the template in the editor. */ function CSpriteLibrary(){ var _oLibSprites; var _iNumSprites; var _iCntSprites; var _cbCompleted; var _cbTotalCompleted; var _cbOwner; this.init = function( cbCompleted,cbTotalCompleted, cbOwner ){ _iNumSprites = 0; _iCntSprites = 0; _cbCompleted = cbCompleted; _cbTotalCompleted = cbTotalCompleted; _cbOwner = cbOwner; _oLibSprites = {}; }; this.addSprite = function( szKey, szPath ){ if ( _oLibSprites.hasOwnProperty(szKey) ){ return; } _oLibSprites[szKey] = { szPath:szPath, oSprite: new Image() }; _iNumSprites++; }; this.getSprite = function( szKey ){ if (!_oLibSprites.hasOwnProperty(szKey)){ return null; }else{ return _oLibSprites[szKey].oSprite; } }; this._onSpritesLoaded = function(){ _cbTotalCompleted.call(_cbOwner); }; this._onSpriteLoaded = function(){ _cbCompleted.call(_cbOwner); if (++_iCntSprites == _iNumSprites) { this._onSpritesLoaded(); } }; this.loadSprites = function(){ for (var szKey in _oLibSprites) { _oLibSprites[szKey].oSprite["oSpriteLibrary"] = this; _oLibSprites[szKey].oSprite.onload = function(){ this.oSpriteLibrary._onSpriteLoaded(); }; _oLibSprites[szKey].oSprite.onerror = function(evt){ var oSpriteToRestore = evt.currentTarget; setTimeout(function(){ _oLibSprites[oSpriteToRestore.szKey].oSprite.src = _oLibSprites[oSpriteToRestore.szKey].szPath; },500); }; _oLibSprites[szKey].oSprite.src = _oLibSprites[szKey].szPath; } }; this.getNumSprites=function(){ return _iNumSprites; }; this.loadSpriteGroup=function(aGroup, cbOwner, cbCompleted, oParam){ for(var i=0; i