SettingLayer.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 vibration_on_icon: Node = null;
  15. @autoBind vibration_off_icon: Node = null;
  16. start(){
  17. platformSystem.platform.showInterstitialAd();
  18. this.updateUI();
  19. }
  20. updateUI(){
  21. let sound:boolean = settingData.data.soundFx;
  22. this.sound_on_icon.active = sound;
  23. this.sound_off_icon.active = !sound;
  24. let vibration:boolean = settingData.data.vibration;
  25. this.vibration_on_icon.active = vibration;
  26. this.vibration_off_icon.active = !vibration;
  27. }
  28. onBtnClicked(event:any, customEventData:any) {
  29. audioMgr.playOneShot(GameConst.audios.btnclick);
  30. var btnName = event.target.name;
  31. switch (btnName) {
  32. case "btn_close":
  33. this.close();
  34. break;
  35. case "btn_sound":
  36. settingData.data.soundFx = !settingData.data.soundFx;
  37. settingData.saveToCache();
  38. Data.user.soundVolume = Data.user.soundVolume == 0 ? 1:0;
  39. this.updateUI();
  40. break;
  41. case "btn_vibration":
  42. settingData.data.vibration = !settingData.data.vibration;
  43. settingData.saveToCache();
  44. Data.user.vibration = Data.user.vibration == 0?1:0;
  45. this.updateUI();
  46. break;
  47. }
  48. }
  49. }