SettingLayer.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { _decorator,Node } from 'cc';
  2. import platformSystem from '../platform/platformSystem';
  3. import BasePanel from '../core/component/BasePanel';
  4. import { audioMgr } from '../core/manager/AudioManager';
  5. import Data from '../core/manager/Data';
  6. import { settingData } from '../user/SettingData';
  7. import { autoBind } from '../core/extend/AutoBind';
  8. import { GameConst } from '../core/common/GameConst';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('SettingLayer')
  11. export class SettingLayer extends BasePanel {
  12. @autoBind sound_on_icon: Node = null;
  13. @autoBind sound_off_icon: Node = null;
  14. @autoBind bgm_on_icon: Node = null;
  15. @autoBind bgm_off_icon: Node = null;
  16. start(){
  17. platformSystem.platform.showInterstitialAd();
  18. this.updateUI();
  19. }
  20. updateUI(){
  21. this.sound_on_icon.active = settingData.data.soundFx;
  22. this.sound_off_icon.active = !settingData.data.soundFx;
  23. this.bgm_on_icon.active = settingData.data.bgMusic;
  24. this.bgm_off_icon.active = !settingData.data.bgMusic;
  25. }
  26. onBtnClicked(event:any, customEventData:any) {
  27. audioMgr.playOneShot(GameConst.audios.btnclick);
  28. var btnName = event.target.name;
  29. switch (btnName) {
  30. case "btn_close":
  31. this.close();
  32. break;
  33. case "btn_sound":
  34. settingData.data.soundFx = !settingData.data.soundFx;
  35. settingData.saveToCache();
  36. Data.user.soundVolume = Data.user.soundVolume == 0 ? 1:0;
  37. this.updateUI();
  38. break;
  39. case "btn_bgm":
  40. let state: boolean = settingData.data.bgMusic;
  41. settingData.data.bgMusic = !state;
  42. if(state){
  43. audioMgr.stop(GameConst.audios.bg_music);
  44. }else{
  45. audioMgr.play(GameConst.audios.bg_music,true);
  46. }
  47. settingData.saveToCache();
  48. //Data.user.vibration = Data.user.vibration == 0?1:0;
  49. this.updateUI();
  50. break;
  51. }
  52. }
  53. }