CMenu.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. function CMenu(){
  2. var _iFrameRate = 1000/10;
  3. var _iSetTimeout;
  4. var _oResetPanel = null;
  5. var _oBg;
  6. var _oButPlay;
  7. var _oButContinue;
  8. var _oFade;
  9. var _oAudioToggle;
  10. var _oButInfo;
  11. var _oButFullscreen;
  12. var _fRequestFullScreen = null;
  13. var _fCancelFullScreen = null;
  14. var _pStartPosAudio;
  15. var _pStartPosInfo;
  16. var _pStartPosFullscreen;
  17. var _aSpritesAnimation = new Array();
  18. this._init = function(){
  19. setVolume("soundtrack", 1);
  20. _oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_menu'));
  21. s_oStage.addChild(_oBg);
  22. if(localStorage.getItem("LevelReached") !== null){
  23. s_iLevelReached = localStorage.getItem("LevelReached");
  24. s_aScores = JSON.parse(localStorage.getItem("Scores"));
  25. }
  26. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  27. var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
  28. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.height/2)- 10, y: (oSprite.height/2) + 10};
  29. _oAudioToggle = new CToggle(_pStartPosAudio.x,_pStartPosAudio.y,oSprite,s_bAudioActive);
  30. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  31. }
  32. var oSprite = s_oSpriteLibrary.getSprite('but_credits');
  33. _pStartPosInfo = {x: (oSprite.height/2)+ 10, y: (oSprite.height/2) + 10};
  34. _oButInfo = new CGfxButton(_pStartPosInfo.x,_pStartPosInfo.y,oSprite);
  35. _oButInfo.addEventListener(ON_MOUSE_UP, this._onCredits, this);
  36. var doc = window.document;
  37. var docEl = doc.documentElement;
  38. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  39. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  40. if(ENABLE_FULLSCREEN === false){
  41. _fRequestFullScreen = false;
  42. }
  43. if (_fRequestFullScreen && screenfull.enabled){
  44. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  45. _pStartPosFullscreen = {x:_pStartPosInfo.x + oSprite.width/2 + 10,y:oSprite.height/2 + 10};
  46. _oButFullscreen = new CToggle(_pStartPosFullscreen.x, _pStartPosFullscreen.y, oSprite, s_bFullscreen, s_oStage);
  47. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  48. }
  49. for( var i=1; i < 22; i++){
  50. _aSpritesAnimation.push(createBitmap(s_oSpriteLibrary.getSprite('bg_menu_animation_'+i)));
  51. s_oStage.addChild(_aSpritesAnimation[i-1]);
  52. _aSpritesAnimation[i-1].visible = false;
  53. }
  54. this.playAnimation(0);
  55. _oFade = new createjs.Shape();
  56. _oFade.graphics.beginFill("black").drawRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);
  57. s_oStage.addChild(_oFade);
  58. createjs.Tween.get(_oFade).to({alpha:0}, 1000).call(function(){_oFade.visible = false;});
  59. if(!s_bStorageAvailable){
  60. new CMsgBox(TEXT_ERR_LS,s_oStage);
  61. }
  62. this.refreshButtonPos(s_iOffsetX,s_iOffsetY);
  63. };
  64. this.playAnimation = function(i){
  65. if(i === 0){
  66. _aSpritesAnimation[i].visible = true;
  67. if(localStorage.getItem("LevelReached") === null){
  68. var oSprite = s_oSpriteLibrary.getSprite('but_play');
  69. _oButPlay = new CGfxButton((CANVAS_WIDTH/2),CANVAS_HEIGHT+100,oSprite);
  70. _oButPlay.moveInPosition((CANVAS_WIDTH/2),CANVAS_HEIGHT -225);
  71. _oButPlay.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
  72. _oButPlay.pulseAnimation();
  73. }else{
  74. var oSprite = s_oSpriteLibrary.getSprite('but_play');
  75. _oButPlay = new CGfxButton((CANVAS_WIDTH/2-125),CANVAS_HEIGHT +100,oSprite);
  76. _oButPlay.moveInPosition((CANVAS_WIDTH/2-125),CANVAS_HEIGHT -225);
  77. _oButPlay.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
  78. var oSprite = s_oSpriteLibrary.getSprite('but_continue');
  79. _oButContinue = new CGfxButton((CANVAS_WIDTH/2+125),CANVAS_HEIGHT +100,oSprite);
  80. _oButContinue.moveInPosition((CANVAS_WIDTH/2+125),CANVAS_HEIGHT -225);
  81. _oButContinue.addEventListener(ON_MOUSE_UP, this._onButContinueRelease, this);
  82. _oButContinue.pulseAnimation();
  83. }
  84. }
  85. if(i > 0){
  86. _aSpritesAnimation[i-1].visible = false;
  87. _aSpritesAnimation[i].visible = true;
  88. }
  89. if(i < _aSpritesAnimation.length-1){
  90. _iSetTimeout = setTimeout(function(){s_oMenu.playAnimation(i+1);},_iFrameRate);
  91. }
  92. };
  93. this.unload = function(){
  94. _oButPlay.unload();
  95. if(_oButContinue){
  96. _oButContinue.unload();
  97. }
  98. _oButPlay = null;
  99. _oFade.visible = false;
  100. clearTimeout(_iSetTimeout);
  101. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  102. _oAudioToggle.unload();
  103. _oAudioToggle = null;
  104. }
  105. if (_fRequestFullScreen && screenfull.enabled){
  106. _oButFullscreen.unload();
  107. }
  108. s_oStage.removeAllChildren();
  109. s_oMenu = null;
  110. };
  111. this.refreshButtonPos = function(iNewX,iNewY){
  112. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  113. _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX,iNewY + _pStartPosAudio.y);
  114. }
  115. if (_fRequestFullScreen && screenfull.enabled){
  116. _oButFullscreen.setPosition(_pStartPosFullscreen.x + iNewX,_pStartPosFullscreen.y + iNewY);
  117. }
  118. _oButInfo.setPosition(_pStartPosInfo.x + iNewX,iNewY + _pStartPosInfo.y);
  119. };
  120. this._onAudioToggle = function(){
  121. Howler.mute(s_bAudioActive);
  122. s_bAudioActive = !s_bAudioActive;
  123. };
  124. this._onButPlayRelease = function(){
  125. $(s_oMain).trigger("start_session");
  126. if (isIOS() && (s_oSoundTrack === null || s_oSoundTrack === undefined)){
  127. s_oSoundTrack = playSound('soundtrack', 1, true);
  128. }
  129. s_oMain.gotoGame(1);
  130. //if(1=1 or localStorage.getItem("LevelReached") === null){
  131. // this.unload();
  132. // s_oMain.gotoLevelMenu();
  133. //}else{
  134. // if(_oResetPanel === null){
  135. // _oResetPanel = new CConfirmPanel(TEXT_RESET, CONFIRMATION_RESET);
  136. // _oResetPanel.addEventListener(ON_BUT_NO_DOWN, this._onButReset, this);
  137. // _oResetPanel.addEventListener(ON_BUT_YES_DOWN, this._onButContinue, this);
  138. // }
  139. //}
  140. };
  141. this._onCredits = function(){
  142. new CCreditsPanel();
  143. };
  144. this._onButReset = function(){
  145. _oResetPanel.unload();
  146. _oResetPanel = null;
  147. };
  148. this._onButContinue = function(){
  149. this.removeLocalStorage();
  150. this.unload();
  151. s_oMain.gotoGame(1);
  152. //s_oMain.gotoLevelMenu();
  153. };
  154. this._onButContinueRelease = function(){
  155. this.unload();
  156. if (isIOS() && (s_oSoundTrack === null || s_oSoundTrack === undefined)){
  157. s_oSoundTrack = playSound('soundtrack', 1, true);
  158. }
  159. s_oMain.gotoGame(1);
  160. //s_oMain.gotoLevelMenu();
  161. };
  162. this.unloadVariousHelp = function(){
  163. _oResetPanel.unload();
  164. _oResetPanel = null;
  165. };
  166. this.removeLocalStorage = function(){
  167. localStorage.removeItem("LevelReached");
  168. localStorage.removeItem("Scores");
  169. s_iLevelReached = 1;
  170. s_aScores = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  171. }
  172. this.resetFullscreenBut = function(){
  173. if (_fRequestFullScreen && screenfull.enabled){
  174. _oButFullscreen.setActive(s_bFullscreen);
  175. }
  176. };
  177. this._onFullscreenRelease = function(){
  178. if(s_bFullscreen) {
  179. _fCancelFullScreen.call(window.document);
  180. }else{
  181. _fRequestFullScreen.call(window.document.documentElement);
  182. }
  183. sizeHandler();
  184. };
  185. s_oMenu = this;
  186. this._init();
  187. }
  188. var s_oMenu = null;