| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- function CSpriteLibrary(){
- var _oLibSprites = {};
- var _oSpritesToLoad;
- var _iNumSprites;
- var _iCntSprites;
- var _cbCompleted;
- var _cbTotalCompleted;
- var _cbOwner;
-
- this.init = function( cbCompleted,cbTotalCompleted, cbOwner ){
- _oSpritesToLoad = {};
- _iNumSprites = 0;
- _iCntSprites = 0;
- _cbCompleted = cbCompleted;
- _cbTotalCompleted = cbTotalCompleted;
- _cbOwner = cbOwner;
- };
-
- this.addSprite = function( szKey, szPath ){
- if ( _oLibSprites.hasOwnProperty(szKey) ){
- return;
- }
-
- var oImage = new Image();
- _oLibSprites[szKey] = _oSpritesToLoad[szKey] = { szPath:szPath, oSprite: oImage ,bLoaded:false};
- _iNumSprites++;
-
- };
-
- this.getSprite = function( szKey ){
- if (!_oLibSprites.hasOwnProperty(szKey)){
- return null;
- }else{
- return _oLibSprites[szKey].oSprite;
- }
- };
-
- this._onSpritesLoaded = function(){
- _iNumSprites = 0;
- _cbTotalCompleted.call(_cbOwner);
- };
- this._onSpriteLoaded = function(){
- _cbCompleted.call(_cbOwner);
- if (++_iCntSprites === _iNumSprites) {
- this._onSpritesLoaded();
- }
-
- };
- this.loadSprites = function(){
- for (var szKey in _oSpritesToLoad) {
- _oSpritesToLoad[szKey].oSprite["oSpriteLibrary"] = this;
- _oSpritesToLoad[szKey].oSprite["szKey"] = szKey;
- _oSpritesToLoad[szKey].oSprite.onload = function(){
- this.oSpriteLibrary.setLoaded(this.szKey);
- this.oSpriteLibrary._onSpriteLoaded(this.szKey);
- };
- _oSpritesToLoad[szKey].oSprite.onerror = function(evt){
- var oSpriteToRestore = evt.currentTarget;
-
- setTimeout(function(){
- _oSpritesToLoad[oSpriteToRestore.szKey].oSprite.src = _oSpritesToLoad[oSpriteToRestore.szKey].szPath;
- },500);
- }
- _oSpritesToLoad[szKey].oSprite.src = _oSpritesToLoad[szKey].szPath;
- }
- };
-
- this.setLoaded = function(szKey){
- _oLibSprites[szKey].bLoaded = true;
- };
-
- this.isLoaded = function(szKey){
- return _oLibSprites[szKey].bLoaded;
- };
-
- this.getNumSprites=function(){
- return _iNumSprites;
- };
- }
|