CMenu.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. function CMenu() {
  2. var _oBg;
  3. var _oLogo;
  4. var _oButPlay;
  5. var _oFade;
  6. var _oAudioToggle;
  7. var _oButInfo;
  8. var _oButFullscreen;
  9. var _fRequestFullScreen = null;
  10. var _fCancelFullScreen = null;
  11. var _pStartPosAudio;
  12. var _pStartPosInfo;
  13. var _pStartPosFullscreen;
  14. this._init = function () {
  15. _oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_menu'));
  16. s_oStage.addChild(_oBg);
  17. _oLogo = createBitmap(s_oSpriteLibrary.getSprite('logo_menu'));
  18. _oLogo.x = 200;
  19. _oLogo.y = 90;
  20. s_oStage.addChild(_oLogo);
  21. var oSprite = s_oSpriteLibrary.getSprite('but_play');
  22. _oButPlay = new CGfxButton((CANVAS_WIDTH / 2), CANVAS_HEIGHT - 225, oSprite);
  23. _oButPlay.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
  24. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  25. var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
  26. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.height / 2) - 10, y: (oSprite.height / 2) + 10};
  27. _oAudioToggle = new CToggle(_pStartPosAudio.x, _pStartPosAudio.y, oSprite, s_bAudioActive);
  28. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  29. }
  30. var oSprite = s_oSpriteLibrary.getSprite('but_credits');
  31. _pStartPosInfo = {x: (oSprite.height / 2) + 10, y: (oSprite.height / 2) + 10};
  32. _oButInfo = new CGfxButton(_pStartPosInfo.x, _pStartPosInfo.y, oSprite, s_oStage);
  33. _oButInfo.addEventListener(ON_MOUSE_UP, this._onCredits, this);
  34. var doc = window.document;
  35. var docEl = doc.documentElement;
  36. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  37. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  38. if(ENABLE_FULLSCREEN === false){
  39. _fRequestFullScreen = false;
  40. }
  41. if (_fRequestFullScreen && screenfull.enabled){
  42. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  43. _pStartPosFullscreen = {x:_pStartPosInfo.x + oSprite.width/2 + 10,y:_pStartPosInfo.y};
  44. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
  45. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  46. }
  47. _oFade = new createjs.Shape();
  48. _oFade.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
  49. s_oStage.addChild(_oFade);
  50. createjs.Tween.get(_oFade).to({alpha: 0}, 1000).call(function () {
  51. _oFade.visible = false;
  52. });
  53. this.refreshButtonPos(s_iOffsetX, s_iOffsetY);
  54. };
  55. this.unload = function () {
  56. _oButPlay.unload();
  57. _oButPlay = null;
  58. _oFade.visible = false;
  59. _oButInfo.unload();
  60. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  61. _oAudioToggle.unload();
  62. _oAudioToggle = null;
  63. }
  64. if (_fRequestFullScreen && screenfull.enabled){
  65. _oButFullscreen.unload();
  66. }
  67. s_oStage.removeAllChildren();
  68. s_oMenu = null;
  69. };
  70. this.refreshButtonPos = function (iNewX, iNewY) {
  71. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  72. _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX, iNewY + _pStartPosAudio.y);
  73. }
  74. if (_fRequestFullScreen && screenfull.enabled){
  75. _oButFullscreen.setPosition(_pStartPosFullscreen.x + iNewX,_pStartPosFullscreen.y + iNewY);
  76. }
  77. _oButInfo.setPosition(_pStartPosInfo.x + iNewX, iNewY + _pStartPosInfo.y);
  78. };
  79. this._onAudioToggle = function () {
  80. Howler.mute(s_bAudioActive);
  81. s_bAudioActive = !s_bAudioActive;
  82. };
  83. this._onCredits = function () {
  84. new CCreditsPanel();
  85. };
  86. this._onButPlayRelease = function () {
  87. this.unload();
  88. s_oMain.gotoTeamChoose();
  89. };
  90. this.resetFullscreenBut = function(){
  91. if (_fRequestFullScreen && screenfull.enabled){
  92. _oButFullscreen.setActive(s_bFullscreen);
  93. }
  94. };
  95. this._onFullscreenRelease = function(){
  96. if(s_bFullscreen) {
  97. _fCancelFullScreen.call(window.document);
  98. }else{
  99. _fRequestFullScreen.call(window.document.documentElement);
  100. }
  101. sizeHandler();
  102. };
  103. s_oMenu = this;
  104. this._init();
  105. }
  106. var s_oMenu = null;