SetNormalPanel.ts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import { BaseView } from "../../../lightMVC/core/base/BaseView";
  2. import { App } from "../../Manager/App";
  3. import { Sex } from "../../Framework/Const/EnumDefine";
  4. import SDK from "../../sdk/SDK";
  5. import { InterstitialType } from "../../sdk/vivo/Interstitial";
  6. import gameScene from "../../gameScene";
  7. import TimeControl from "../../TimeControl";
  8. import AESUtil from "../../AESUtil"
  9. import ATSDK from "../../AnyThinkAds/ATJSSDK";
  10. import ATRewardedVideoSDK from "../../AnyThinkAds/ATRewardedVideoJSSDK";
  11. import AAJS2 from "../../ATAndroidJS2";
  12. import GlobalManager from '../../GlobalManager';
  13. import ATInterstitialSDK from "../../AnyThinkAds/ATInterstitialJSSDK";
  14. import ATBannerSDK from "../../AnyThinkAds/ATBannerJSSDK";
  15. import { AdType } from '../../ATAndroidJS2';
  16. const { ccclass, property } = cc._decorator;
  17. @ccclass
  18. export default class SetNormalPanel extends BaseView {
  19. public drawView(): void {
  20. SDK.Instance.showInterstitial(InterstitialType.INTERSTITIAL_GAME_PAUSE);
  21. // 返回
  22. let closeBtn = this.ui.getNode("close");
  23. closeBtn.on(cc.Node.EventType.TOUCH_END, () => {
  24. cc.director.resume();
  25. this.closeView();
  26. }, this);
  27. let btnBack = this.ui.getNode("btnBackhall");
  28. btnBack.on(cc.Node.EventType.TOUCH_END, () => {
  29. this.showInterAd("callBackFor_btnBackhall", false, this.callBackFor_btnBackhall);
  30. // console.log('zh:btnBackhall111 ')
  31. // cc.director.resume();
  32. // cc.director.loadScene("hallScene");
  33. }, this);
  34. this.setMusic();
  35. this.setEffect();
  36. let button_debug = this.ui.getNode("button_debug");
  37. //zh:diy 测试专用
  38. button_debug.on(cc.Node.EventType.TOUCH_END, () => {
  39. console.log('zh:button_debug ')
  40. TimeControl.instance.currentTili=1;
  41. App.LocalStorageUtil.setNumber(App.LocalStorageUtil.lst_Tili, TimeControl.instance.currentTili);
  42. }, this);
  43. }
  44. private callBackFor_btnBackhall(): void {
  45. cc.director.resume();
  46. cc.director.loadScene("hallScene");
  47. }
  48. private debugTest(){
  49. }
  50. //设置音乐
  51. public setMusic(): void {
  52. let MusicBtn = this.ui.getNode("music");
  53. let musicOn = MusicBtn.getChildByName('on');
  54. let musicOff = MusicBtn.getChildByName('off');
  55. musicOn.active = (App.SoundManager.allowPlayBGM) ? true : false;
  56. musicOff.active = (App.SoundManager.allowPlayBGM) ? false : true;
  57. MusicBtn.on(cc.Node.EventType.TOUCH_END, () => {
  58. App.SoundManager.allowPlayBGM = !App.SoundManager.allowPlayBGM;
  59. musicOn.active = (App.SoundManager.allowPlayBGM) ? true : false;
  60. musicOff.active = (App.SoundManager.allowPlayBGM) ? false : true;
  61. App.LocalStorageUtil.setBoolean(App.LocalStorageUtil.lst_music, App.SoundManager.allowPlayBGM);
  62. console.log('点击音乐', App.SoundManager.allowPlayBGM);
  63. }, this);
  64. }
  65. //设置音效
  66. public setEffect(): void {
  67. let EffectBtn = this.ui.getNode("audio");
  68. let effectOn = EffectBtn.getChildByName('on');
  69. let effectOff = EffectBtn.getChildByName('off');
  70. effectOn.active = (App.SoundManager.allowPlayEffect) ? true : false;
  71. effectOff.active = (App.SoundManager.allowPlayEffect) ? false : true;
  72. EffectBtn.on(cc.Node.EventType.TOUCH_END, () => {
  73. App.SoundManager.allowPlayEffect = !App.SoundManager.allowPlayEffect;
  74. effectOn.active = (App.SoundManager.allowPlayEffect) ? true : false;
  75. effectOff.active = (App.SoundManager.allowPlayEffect) ? false : true;
  76. App.LocalStorageUtil.setBoolean(App.LocalStorageUtil.lst_effect, App.SoundManager.allowPlayEffect);
  77. console.log('点击音效', App.SoundManager.allowPlayEffect);
  78. }, this);
  79. }
  80. public static path(): string {
  81. return "hallScene/prefabs/SetNormalPanel";
  82. }
  83. /**
  84. * 显示插屏广告
  85. *
  86. * @param adMarkForClose 插屏广告关闭后调用那个方法的具体指示标识
  87. * @param checkClose 是否需要判断关闭事件,有的不需要,如果AD占用游戏时间则为true
  88. * @param callback 插屏广告关闭(加载失败\非ANDROID平台)的回调
  89. */
  90. private showInterAd(adMarkForClose: string, checkClose: boolean, callback: () => void) {
  91. if (cc.sys.os === cc.sys.OS_ANDROID) {
  92. if(checkClose) {
  93. cc.sys.localStorage.setItem("adMarkForClose", adMarkForClose);//关闭后,调用哪个方法的标识
  94. }
  95. //add判断插屏 开屏等
  96. let pid_inter = AAJS2.getPlacementId2(AdType.Inter);
  97. let boo = ATInterstitialSDK.hasAdReady(pid_inter);
  98. if (boo) {
  99. // 暂停游戏
  100. cc.director.pause();
  101. console.log('zh:showInterAd AD OK');
  102. ATInterstitialSDK.showAd(pid_inter);
  103. //因为跨脚本,所以使用全局注册函数调用,后来发现切换APP,导致ad close事件失效
  104. if (!checkClose) {//如果不占用游戏时间
  105. this.safeCallback(callback);
  106. }
  107. } else {
  108. console.log('zh:showInterAd AD 没有准备好');
  109. //GlobalManager.getInstance().callMethod('initAdForPageInter');
  110. //this.initAdForPageInter();
  111. this.safeCallback(callback);
  112. }
  113. } else {
  114. this.safeCallback(callback);
  115. }
  116. }
  117. // 辅助方法:安全调用回调函数
  118. private safeCallback(callback?: () => void) {
  119. if (callback) {
  120. callback();
  121. }
  122. }
  123. }