CMenu.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. setVolume("soundtrack",1);
  16. _oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_menu'));
  17. s_oStage.addChild(_oBg);
  18. _oLogo = createBitmap(s_oSpriteLibrary.getSprite('logo_menu'));
  19. _oLogo.x = 140;
  20. _oLogo.y = 20;
  21. s_oStage.addChild(_oLogo);
  22. var oSprite = s_oSpriteLibrary.getSprite('but_play');
  23. _oButPlay = new CGfxButton((CANVAS_WIDTH/2),CANVAS_HEIGHT -225,oSprite);
  24. _oButPlay.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
  25. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  26. var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
  27. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.height/2)- 10, y: (oSprite.height/2) + 10};
  28. _oAudioToggle = new CToggle(_pStartPosAudio.x,_pStartPosAudio.y,oSprite,s_bAudioActive,s_oStage);
  29. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  30. }
  31. var oSprite = s_oSpriteLibrary.getSprite('but_credits');
  32. _pStartPosInfo = {x: (oSprite.height/2) + 10, y: (oSprite.height/2) + 10};
  33. _oButInfo = new CGfxButton(_pStartPosInfo.x,_pStartPosInfo.y,oSprite,s_oStage);
  34. _oButInfo.addEventListener(ON_MOUSE_UP, this._onCredits, this);
  35. var doc = window.document;
  36. var docEl = doc.documentElement;
  37. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  38. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  39. if(ENABLE_FULLSCREEN === false){
  40. _fRequestFullScreen = false;
  41. }
  42. if (_fRequestFullScreen && screenfull.enabled){
  43. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  44. _pStartPosFullscreen = {x:_pStartPosInfo.x + oSprite.width/2 + 10,y:_pStartPosInfo.y};
  45. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
  46. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  47. }
  48. _oFade = new createjs.Shape();
  49. _oFade.graphics.beginFill("black").drawRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);
  50. s_oStage.addChild(_oFade);
  51. createjs.Tween.get(_oFade).to({alpha:0}, 1000).call(function(){_oFade.visible = false;});
  52. this.refreshButtonPos(s_iOffsetX,s_iOffsetY);
  53. };
  54. this.unload = function(){
  55. _oButPlay.unload();
  56. _oButPlay = null;
  57. _oFade.visible = false;
  58. _oButInfo.unload();
  59. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  60. _oAudioToggle.unload();
  61. _oAudioToggle = null;
  62. }
  63. if (_fRequestFullScreen && screenfull.enabled){
  64. _oButFullscreen.unload();
  65. }
  66. s_oStage.removeAllChildren();
  67. s_oMenu = null;
  68. };
  69. this.refreshButtonPos = function(iNewX,iNewY){
  70. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  71. _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX,iNewY + _pStartPosAudio.y);
  72. }
  73. if (_fRequestFullScreen && screenfull.enabled){
  74. _oButFullscreen.setPosition(_pStartPosFullscreen.x + iNewX,_pStartPosFullscreen.y + iNewY);
  75. }
  76. _oButInfo.setPosition(_pStartPosInfo.x + iNewX,iNewY + _pStartPosInfo.y);
  77. };
  78. this._onAudioToggle = function(){
  79. Howler.mute(s_bAudioActive);
  80. s_bAudioActive = !s_bAudioActive;
  81. };
  82. this._onCredits = function(){
  83. new CCreditsPanel();
  84. };
  85. this._onButPlayRelease = function(){
  86. this.unload();
  87. $(s_oMain).trigger("start_session");
  88. s_oMain.gotoGame();
  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;