CMenu.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. function CMenu() {
  2. var _pStartPosAudio;
  3. var _pStartPosPlay;
  4. var _pStartPosInfo;
  5. var _pStartPosFullscreen;
  6. var _oBg;
  7. var _oPlay;
  8. var _oHitAreaPlay;
  9. var _oButInfo;
  10. var _oFade;
  11. var _oAudioToggle;
  12. var _oButFullscreen;
  13. var _fRequestFullScreen = null;
  14. var _fCancelFullScreen = null;
  15. this._init = function () {
  16. _oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_menu'));
  17. s_oStage.addChild(_oBg);
  18. var oSprite = s_oSpriteLibrary.getSprite('but_play');
  19. _pStartPosPlay = {x: CANVAS_WIDTH / 2, y: CANVAS_HEIGHT - 340};
  20. _oPlay = createBitmap(oSprite);
  21. _oPlay.x = _pStartPosPlay.x;
  22. _oPlay.y = _pStartPosPlay.y;
  23. _oPlay.regX = oSprite.width * 0.5;
  24. _oPlay.regY = oSprite.height * 0.5;
  25. s_oStage.addChild(_oPlay);
  26. _oHitAreaPlay = new createjs.Shape();
  27. _oHitAreaPlay.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(_pStartPosPlay.x - _oPlay.regX, _pStartPosPlay.y - _oPlay.regY, 184, 184);
  28. _oHitAreaPlay.on("mousedown", this._onMouseDownHitArea, this, true);
  29. _oHitAreaPlay.on("pressup", this._onButPlayRelease, this, true);
  30. _oHitAreaPlay.cursor = "pointer";
  31. s_oStage.addChild(_oHitAreaPlay);
  32. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  33. var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
  34. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.height / 2) - 10, y: (oSprite.height / 2) + 10};
  35. _oAudioToggle = new CToggle(_pStartPosAudio.x, _pStartPosAudio.y, oSprite, s_bAudioActive);
  36. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  37. }
  38. var oSpriteInfo = s_oSpriteLibrary.getSprite("but_info");
  39. _pStartPosInfo = {x: (oSpriteInfo.height / 2) + 10, y: (oSpriteInfo.height / 2) + 10};
  40. _oButInfo = new CGfxButton(_pStartPosInfo.x, _pStartPosInfo.y, oSpriteInfo, s_oStage);
  41. _oButInfo.addEventListener(ON_MOUSE_UP, this._onButInfoRelease, this);
  42. var doc = window.document;
  43. var docEl = doc.documentElement;
  44. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  45. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  46. if(ENABLE_FULLSCREEN === false){
  47. _fRequestFullScreen = false;
  48. }
  49. if (_fRequestFullScreen && screenfull.enabled){
  50. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  51. _pStartPosFullscreen = {x:_pStartPosInfo.x + oSprite.width/2 + 10,y:oSprite.height/2 + 10};
  52. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
  53. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  54. }
  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 () {
  59. _oFade.visible = false;
  60. });
  61. this.refreshButtonPos(s_iOffsetX, s_iOffsetY);
  62. };
  63. this._onMouseDownHitArea = function () {
  64. _oPlay.scaleX = _oPlay.scaleY = 0.9;
  65. };
  66. this.refreshButtonPos = function (iNewX, iNewY) {
  67. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  68. _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX, iNewY + _pStartPosAudio.y);
  69. }
  70. if (_fRequestFullScreen && screenfull.enabled){
  71. _oButFullscreen.setPosition(_pStartPosFullscreen.x + iNewX,_pStartPosFullscreen.y + iNewY);
  72. }
  73. _oButInfo.setPosition(_pStartPosInfo.x + iNewX, _pStartPosInfo.y + iNewY);
  74. };
  75. this.unload = function () {
  76. _oHitAreaPlay.removeAllEventListeners();
  77. _oHitAreaPlay = null;
  78. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  79. _oAudioToggle.unload();
  80. _oAudioToggle = null;
  81. }
  82. if (_fRequestFullScreen && screenfull.enabled){
  83. _oButFullscreen.unload();
  84. }
  85. _oButInfo.unload();
  86. s_oStage.removeAllChildren();
  87. s_oMenu = null;
  88. };
  89. this._onButPlayRelease = function () {
  90. _oPlay.scaleX = _oPlay.scaleY = 1;
  91. this.unload();
  92. playSound("click", 1, false);
  93. s_oMain.gotoGame();
  94. };
  95. this._onAudioToggle = function () {
  96. Howler.mute(s_bAudioActive);
  97. s_bAudioActive = !s_bAudioActive;
  98. };
  99. this._onButInfoRelease = function () {
  100. new CCreditsPanel();
  101. };
  102. this.resetFullscreenBut = function(){
  103. if (_fRequestFullScreen && screenfull.enabled){
  104. _oButFullscreen.setActive(s_bFullscreen);
  105. }
  106. };
  107. this._onFullscreenRelease = function(){
  108. if(s_bFullscreen) {
  109. //trace("AWE")
  110. _fCancelFullScreen.call(window.document);
  111. }else{
  112. //trace("QAZ")
  113. _fRequestFullScreen.call(window.document.documentElement);
  114. }
  115. sizeHandler();
  116. };
  117. s_oMenu = this;
  118. this._init();
  119. }
  120. var s_oMenu = null;