1function CMain(oData){ 2 var _bUpdate; 3 var _iCurResource = 0; 4 var RESOURCE_TO_LOAD = 0; 5 var _iState = STATE_LOADING; 6 7 var _oData; 8 var _oPreloader; 9 var _oMenu; 10 var _oLevelMenu; 11 var _oHelp; 12 var _oGame; 13 14 this.initContainer = function(){ 15 var canvas = document.getElementById("canvas"); 16 s_oStage = new createjs.Stage(canvas); 17 createjs.Touch.enable(s_oStage); 18 19 s_bMobile = jQuery.browser.mobile; 20 if(s_bMobile === false){ 21 s_oStage.enableMouseOver(20); 22 } 23 24 25 s_iPrevTime = new Date().getTime(); 26 27 createjs.Ticker.setFPS(35); 28 29 createjs.Ticker.on("tick",this._update); 30 31 if(navigator.userAgent.match(/Windows Phone/i)){ 32 DISABLE_SOUND_MOBILE = true; 33 } 34 35 s_oSpriteLibrary = new CSpriteLibrary(); 36 37 //ADD PRELOADER 38 _oPreloader = new CPreloader(); 39 }; 40 41 this.clearLocalStorage = function(){ 42 if(s_bStorageAvailable){ 43 localStorage.clear(); 44 } 45 }; 46 47 this.preloaderReady = function(){ 48 jQuery.getJSON("layouts.json", this.onLoadedJSON); 49 _bUpdate = true; 50 }; 51 52 this.soundLoaded = function(){ 53 _iCurResource++; 54 var iPerc = Math.floor(_iCurResource/RESOURCE_TO_LOAD *100); 55 56 _oPreloader.refreshLoader(iPerc); 57 if(_iCurResource === RESOURCE_TO_LOAD){ 58 this._allResourcesLoaded(); 59 } 60 }; 61 62 this._initSounds = function(){ 63 if (!createjs.Sound.initializeDefaultPlugins()) { 64 return; 65 } 66 67 if(navigator.userAgent.indexOf("Opera")>0 || navigator.userAgent.indexOf("OPR")>0){ 68 createjs.Sound.alternateExtensions = ["mp3"]; 69 createjs.Sound.addEventListener("fileload", createjs.proxy(this.soundLoaded, this)); 70 71 createjs.Sound.registerSound("./sounds/click.ogg", "click"); 72 createjs.Sound.registerSound("./sounds/win.ogg", "win"); 73 createjs.Sound.registerSound("./sounds/game_over.ogg", "game_over"); 74 createjs.Sound.registerSound("./sounds/matching.ogg", "matching"); 75 }else{ 76 createjs.Sound.alternateExtensions = ["ogg"]; 77 createjs.Sound.addEventListener("fileload", createjs.proxy(this.soundLoaded, this)); 78 79 createjs.Sound.registerSound("./sounds/click.mp3", "click"); 80 createjs.Sound.registerSound("./sounds/win.mp3", "win"); 81 createjs.Sound.registerSound("./sounds/game_over.mp3", "game_over"); 82 createjs.Sound.registerSound("./sounds/matching.mp3", "matching"); 83 } 84 85 RESOURCE_TO_LOAD += 4; 86 87 }; 88 89 this._loadImages = function(){ 90 s_oSpriteLibrary.init( this._onImagesLoaded,this._onAllImagesLoaded, this ); 91 92 s_oSpriteLibrary.addSprite("but_play","./sprites/but_play.png"); 93 s_oSpriteLibrary.addSprite("but_continue","./sprites/but_continue.png"); 94 s_oSpriteLibrary.addSprite("but_generic_small","./sprites/but_generic_small.png"); 95 s_oSpriteLibrary.addSprite("but_exit","./sprites/but_exit.png"); 96 s_oSpriteLibrary.addSprite("bg_menu","./sprites/bg_menu.jpg"); 97 s_oSpriteLibrary.addSprite("audio_icon","./sprites/audio_icon.png"); 98 s_oSpriteLibrary.addSprite("msg_box","./sprites/msg_box.png"); 99 s_oSpriteLibrary.addSprite("but_level","./sprites/but_level.png"); 100 s_oSpriteLibrary.addSprite("bg_menu_level","./sprites/bg_menu_level.jpg"); 101 s_oSpriteLibrary.addSprite("arrow_left","./sprites/arrow_left.png"); 102 s_oSpriteLibrary.addSprite("arrow_right","./sprites/arrow_right.png"); 103 s_oSpriteLibrary.addSprite("logo_ctl","./sprites/logo_ctl.png"); 104 s_oSpriteLibrary.addSprite("but_credits","./sprites/but_credits.png"); 105 s_oSpriteLibrary.addSprite("but_exit_small","./sprites/but_exit_small.png"); 106 s_oSpriteLibrary.addSprite("but_fullscreen","./sprites/but_fullscreen.png"); 107 s_oSpriteLibrary.addSprite("tiles","./sprites/tiles.png"); 108 s_oSpriteLibrary.addSprite("selection","./sprites/selection.png"); 109 s_oSpriteLibrary.addSprite("bg_game","./sprites/bg_game.jpg"); 110 s_oSpriteLibrary.addSprite("but_yes","./sprites/but_yes.png"); 111 s_oSpriteLibrary.addSprite("but_no","./sprites/but_no.png"); 112 s_oSpriteLibrary.addSprite("panel_bg","./sprites/panel_bg.png"); 113 s_oSpriteLibrary.addSprite("but_restart","./sprites/but_restart.png"); 114 s_oSpriteLibrary.addSprite("but_shuffle","./sprites/but_shuffle.png"); 115 s_oSpriteLibrary.addSprite("but_hint","./sprites/but_hint.png"); 116 117 var aLevelNames = s_oLevelSettings.getLayoutNames(); 118 for(var i=0;i<aLevelNames.length;i++){ 119 s_oSpriteLibrary.addSprite("but_level_"+i,"./sprites/but_level_"+aLevelNames[i]+".png"); 120 } 121 RESOURCE_TO_LOAD += s_oSpriteLibrary.getNumSprites(); 122 123 s_oSpriteLibrary.loadSprites(); 124 }; 125 126 this._onImagesLoaded = function(){ 127 _iCurResource++; 128 129 var iPerc = Math.floor(_iCurResource/RESOURCE_TO_LOAD *100); 130 131 _oPreloader.refreshLoader(iPerc); 132 if(_iCurResource === RESOURCE_TO_LOAD){ 133 this._allResourcesLoaded(); 134 } 135 }; 136 137 this._onAllImagesLoaded = function(){ 138 139 }; 140 141 this.onAllPreloaderImagesLoaded = function(){ 142 this._loadImages(); 143 }; 144 145 this._allResourcesLoaded = function(){ 146 _oPreloader.unload(); 147 148 try{ 149 saveItem("ls_available","ok"); 150 }catch(evt){ 151 // localStorage not defined 152 s_bStorageAvailable = false;
153 } 154 155 156 if (!isIOS()) { 157 if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) { 158 s_oSoundTrack = createjs.Sound.play("soundtrack", {loop: -1}); 159 } 160 } 161 162 s_oMain.gotoMenu(); 163 }; 164 165 this.onLoadedJSON = function (oData) { 166 167 s_oLevelSettings = new CLevelSettings(oData); 168 169 if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){ 170 s_oMain._initSounds(); 171 } 172 173 s_oMain._loadImages(); 174 }; 175 176 this.stopUpdate = function(){ 177 _bUpdate = false; 178 createjs.Ticker.paused = true; 179 $("#block_game").css("display","block"); 180 createjs.Sound.setMute(true); 181 182 }; 183 184 this.startUpdate = function(){ 185 s_iPrevTime = new Date().getTime(); 186 _bUpdate = true; 187 createjs.Ticker.paused = false; 188 $("#block_game").css("display","none"); 189 190 if(s_bAudioActive){ 191 createjs.Sound.setMute(false); 192 } 193 }; 194 195 this.gotoMenu = function(){ 196 _oMenu = new CMenu(); 197 _iState = STATE_MENU; 198 }; 199 200 this.gotoLevelMenu = function(){ 201 _oLevelMenu = new CLevelMenu(); 202 }; 203 204 this.gotoGame = function(iLevel,szName){ 205 _oGame = new CGame(iLevel,szName); 206 207 _iState = STATE_GAME; 208 }; 209 210 this.gotoHelp = function(){ 211 _oHelp = new CHelp(); 212 _iState = STATE_HELP; 213 }; 214 215 this.levelSelected = function(iLevel,szName){ 216 this.gotoGame(iLevel,szName); 217 }; 218 219 this._update = function(event){ 220 if(_bUpdate === false){ 221 return; 222 } 223 var iCurTime = new Date().getTime(); 224 s_iTimeElaps = iCurTime - s_iPrevTime; 225 s_iCntTime += s_iTimeElaps; 226 s_iCntFps++; 227 s_iPrevTime = iCurTime; 228 229 if ( s_iCntTime >= 1000 ){ 230 s_iCurFps = s_iCntFps; 231 s_iCntTime-=1000; 232 s_iCntFps = 0; 233 } 234 235 if(_iState === STATE_GAME){ 236 _oGame.update(); 237 } 238 239 if(s_oStage !== undefined){ 240 s_oStage.update(event); 241 } 242 }; 243 244 s_oMain = this; 245 246 _oData = oData; 247 BONUS_TIME = oData.bonus_time; 248 HINT_PENALTY = oData.hint_penalty; 249 250 ENABLE_FULLSCREEN = oData.fullscreen; 251 ENABLE_CHECK_ORIENTATION = oData.check_orientation; 252 253 this.initContainer(); 254} 255 256var s_bMobile; 257var s_bAudioActive = true; 258var s_iCntTime = 0; 259var s_iTimeElaps = 0; 260var s_iPrevTime = 0; 261var s_iCntFps = 0; 262var s_iCurFps = 0; 263 264var s_oSoundTrack = null; 265var s_oStage; 266var s_oMain = null; 267var s_oSpriteLibrary; 268var s_oLevelSettings; 269 270var s_bFullscreen = false; 271var s_bStorageAvailable = true;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.