CMenu.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. function CMenu() {
  2. var _oBg;
  3. var _oButPlay;
  4. var _oButContinue;
  5. var _oButCredits;
  6. var _oFade;
  7. var _oAudioToggle;
  8. var _oCreditsPanel;
  9. var _oLogo;
  10. var _oButFullscreen;
  11. var _fRequestFullScreen = null;
  12. var _fCancelFullScreen = null;
  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 oSpriteLogo = s_oSpriteLibrary.getSprite("logo_menu");
  20. _oLogo = createBitmap(oSpriteLogo);
  21. _oLogo.x = CANVAS_WIDTH_HALF;
  22. _oLogo.y = -oSpriteLogo.width * 0.5;
  23. _oLogo.regX = oSpriteLogo.width * 0.5;
  24. _oLogo.regY = oSpriteLogo.height * 0.5;
  25. _oLogo.rotation = -15;
  26. s_oStage.addChild(_oLogo);
  27. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  28. var oSprite = s_oSpriteLibrary.getSprite('icon_audio');
  29. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.width / 2) + 15, y: (oSprite.height / 2) + 30};
  30. _oAudioToggle = new CToggle(_pStartPosAudio.x, _pStartPosAudio.y, oSprite, s_bAudioActive,s_oStage);
  31. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  32. }
  33. var oSpritePlay = s_oSpriteLibrary.getSprite('but_play');
  34. _oButPlay = new CGfxButton(CANVAS_WIDTH / 2, 1100, oSpritePlay);
  35. _oButPlay.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
  36. _oButPlay.pulseAnimation();
  37. var oSprite = s_oSpriteLibrary.getSprite('but_info');
  38. _pStartPosCredits = {x: (oSprite.width / 2) + 30, y: (oSprite.height / 2) + 30};
  39. _oButCredits = new CGfxButton(_pStartPosCredits.x, _pStartPosCredits.y, oSprite);
  40. _oButCredits.addEventListener(ON_MOUSE_UP, this._onCredits, this);
  41. var doc = window.document;
  42. var docEl = doc.documentElement;
  43. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  44. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  45. if(ENABLE_FULLSCREEN === false){
  46. _fRequestFullScreen = false;
  47. }
  48. if (_fRequestFullScreen && screenfull.isEnabled){
  49. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  50. _pStartPosFullscreen = {x:_pStartPosCredits.x + oSprite.width/2 + 10,y:_pStartPosCredits.y};
  51. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
  52. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  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(_oLogo).wait(300).to({rotation: 0}, 1000, createjs.Ease.cubicOut);
  58. createjs.Tween.get(_oLogo).wait(300).to({y: CANVAS_HEIGHT_HALF - 100}, 1000, createjs.Ease.bounceOut)
  59. createjs.Tween.get(_oFade).to({alpha: 0}, 1000).call(function () {
  60. s_oStage.removeChild(_oFade);
  61. });
  62. this.refreshButtonPos(s_iOffsetX, s_iOffsetY);
  63. };
  64. this.unload = function () {
  65. _oButPlay.unload();
  66. _oButPlay = null;
  67. _oButCredits.unload();
  68. _oButCredits = null;
  69. if (_oButContinue) {
  70. _oButContinue.unload();
  71. _oButContinue = null;
  72. }
  73. if (_fRequestFullScreen && screenfull.isEnabled){
  74. _oButFullscreen.unload();
  75. }
  76. s_oStage.removeChild(_oBg);
  77. _oBg = null;
  78. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  79. _oAudioToggle.unload();
  80. _oAudioToggle = null;
  81. }
  82. s_oStage.removeAllChildren();
  83. s_oMenu = null;
  84. };
  85. this.exitFromCredits = function () {
  86. _oCreditsPanel = null;
  87. };
  88. this.refreshButtonPos = function () {
  89. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  90. _oAudioToggle.setPosition(_pStartPosAudio.x - s_iOffsetX, _pStartPosAudio.y + s_iOffsetY);
  91. }
  92. if (_fRequestFullScreen && screenfull.isEnabled){
  93. _oButFullscreen.setPosition(_pStartPosFullscreen.x + s_iOffsetX,_pStartPosFullscreen.y + s_iOffsetY);
  94. }
  95. _oButCredits.setPosition(_pStartPosCredits.x + s_iOffsetX, _pStartPosCredits.y + s_iOffsetY);
  96. };
  97. this._onAudioToggle = function () {
  98. Howler.mute(s_bAudioActive);
  99. s_bAudioActive = !s_bAudioActive;
  100. };
  101. this.resetFullscreenBut = function(){
  102. if (_fRequestFullScreen && screenfull.isEnabled){
  103. _oButFullscreen.setActive(s_bFullscreen);
  104. }
  105. };
  106. this._onFullscreenRelease = function(){
  107. if(s_bFullscreen) {
  108. _fCancelFullScreen.call(window.document);
  109. }else{
  110. _fRequestFullScreen.call(window.document.documentElement);
  111. }
  112. sizeHandler();
  113. };
  114. this._onCredits = function () {
  115. _oCreditsPanel = new CCreditsPanel();
  116. };
  117. this._onButPlayRelease = function () {
  118. this.unload();
  119. s_oMain.gotoGame();
  120. };
  121. s_oMenu = this;
  122. this._init();
  123. }
  124. var s_oMenu = null;