CMenu.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. function CMenu() {
  2. var _oBg;
  3. var _oButPlay;
  4. var _oFade;
  5. var _oAudioToggle;
  6. var _oCreditsBut;
  7. var _oButFullscreen;
  8. var _oButSave;
  9. var _oAreYouSurePanel;
  10. var _fRequestFullScreen = null;
  11. var _fCancelFullScreen = null;
  12. var _pStartPosSave;
  13. var _pStartPosAudio;
  14. var _pStartPosCredits;
  15. var _pStartPosFullscreen;
  16. this._init = function () {
  17. _oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_menu'));
  18. s_oStage.addChild(_oBg);
  19. var oSpritePlay = s_oSpriteLibrary.getSprite('but_play');
  20. _oButPlay = new CGfxButton((CANVAS_WIDTH / 2), CANVAS_HEIGHT / 2 + 250, oSpritePlay,s_oStage);
  21. _oButPlay.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
  22. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  23. var oSprite = s_oSpriteLibrary.getSprite('icon_audio');
  24. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.width / 2) + 15, y: (oSprite.height / 2) + 20};
  25. _oAudioToggle = new CToggle(_pStartPosAudio.x, _pStartPosAudio.y, oSprite, s_bAudioActive);
  26. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  27. }
  28. var oSprite = s_oSpriteLibrary.getSprite('but_credits');
  29. _pStartPosCredits = {x: (oSprite.width/2) + 20, y: (oSprite.height/2) + 20};
  30. _oCreditsBut = new CGfxButton(_pStartPosCredits.x,_pStartPosCredits.y,oSprite, s_oStage);
  31. _oCreditsBut.addEventListener(ON_MOUSE_UP, this._onCreditsBut, this);
  32. var doc = window.document;
  33. var docEl = doc.documentElement;
  34. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  35. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  36. if(ENABLE_FULLSCREEN === false){
  37. _fRequestFullScreen = false;
  38. }
  39. if (_fRequestFullScreen && screenfull.isEnabled){
  40. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  41. _pStartPosFullscreen = {x:_pStartPosCredits.x + oSprite.width/2 + 10,y:_pStartPosCredits.y};
  42. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,true);
  43. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  44. }
  45. var oSprite = s_oSpriteLibrary.getSprite("but_clear_save")
  46. _pStartPosSave = {x:(oSprite.width/2) + 20,y:CANVAS_HEIGHT - oSprite.height/2 - 20};
  47. _oButSave = new CGfxButton(_pStartPosSave.x,_pStartPosSave.y,oSprite,s_oStage);
  48. _oButSave.addEventListener(ON_MOUSE_UP,this._onClearSave,this);
  49. _oAreYouSurePanel = new CAreYouSurePanel();
  50. _oAreYouSurePanel.addEventListener(ON_BUT_YES_DOWN,this._onConfirmClear,this);
  51. if(!s_bStorageAvailable){
  52. new CAlertSavingBox(TEXT_ERR_LS,s_oStage);
  53. }
  54. _oFade = new createjs.Shape();
  55. _oFade.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
  56. s_oStage.addChild(_oFade);
  57. createjs.Tween.get(_oFade).to({alpha: 0}, 1000).call(function () {
  58. s_oStage.removeChild(_oFade);
  59. });
  60. this.refreshButtonPos(s_iOffsetX, s_iOffsetY);
  61. };
  62. this.unload = function () {
  63. _oButPlay.unload();
  64. _oButPlay = null;
  65. _oButSave.unload();
  66. s_oStage.removeChild(_oBg);
  67. _oBg = null;
  68. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  69. _oAudioToggle.unload();
  70. _oAudioToggle = null;
  71. }
  72. if (_fRequestFullScreen && screenfull.isEnabled){
  73. _oButFullscreen.unload();
  74. }
  75. _oCreditsBut.unload();
  76. s_oMenu = null;
  77. };
  78. this.refreshButtonPos = function () {
  79. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  80. _oAudioToggle.setPosition(_pStartPosAudio.x - s_iOffsetX, _pStartPosAudio.y + s_iOffsetY);
  81. }
  82. if (_fRequestFullScreen && screenfull.isEnabled){
  83. _oButFullscreen.setPosition(_pStartPosFullscreen.x + s_iOffsetX,_pStartPosFullscreen.y + s_iOffsetY);
  84. }
  85. _oCreditsBut.setPosition(_pStartPosCredits.x + s_iOffsetX,_pStartPosCredits.y + s_iOffsetY);
  86. _oButSave.setPosition(_pStartPosSave.x + s_iOffsetX,_pStartPosSave.y - s_iOffsetY);
  87. };
  88. this._onAudioToggle = function () {
  89. Howler.mute(s_bAudioActive);
  90. s_bAudioActive = !s_bAudioActive;
  91. };
  92. this._onButPlayRelease = function () {
  93. this.unload();
  94. s_oMain.gotoLevelMenu();
  95. };
  96. this._onCreditsBut = function(){
  97. new CCreditsPanel();
  98. };
  99. this.resetFullscreenBut = function(){
  100. if (_fRequestFullScreen && screenfull.isEnabled){
  101. _oButFullscreen.setActive(s_bFullscreen);
  102. }
  103. };
  104. this._onFullscreenRelease = function(){
  105. if(s_bFullscreen) {
  106. _fCancelFullScreen.call(window.document);
  107. }else{
  108. _fRequestFullScreen.call(window.document.documentElement);
  109. }
  110. sizeHandler();
  111. };
  112. this._onClearSave = function(){
  113. _oAreYouSurePanel.show(TEXT_CONFIRM_CLEAR_SAVINGS);
  114. };
  115. this._onConfirmClear = function(){
  116. s_oMain.clearLocalStorage();
  117. };
  118. s_oMenu = this;
  119. this._init();
  120. }
  121. var s_oMenu = null;