123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- const AlertCtrl = require('AlertCtrl');
- const LoadingCtrl = require('LoadingCtrl');
- const ToastCtrl = require('ToastCtrl');
- const ReconnCtrl = require('ReconnCtrl');
- cc.Class({
- extends: cc.Component,
- properties: {
- alertCtrl: AlertCtrl,
- loadingCtrl: LoadingCtrl,
- toastCtrl: ToastCtrl,
- reconnCtrl: ReconnCtrl,
- sceneName: '',
- musicName: ''
- },
- /**
- * 生命周期。子类需要调用this._super()
- *
- * @author Pyden
- * @date 2019-03-25
- */
- onLoad () {
- if (!G.DID_GAME_INIT) {
- G.DID_GAME_INIT = true;
-
- // 初始化连接配置
- G.NetworkMgr.initConn();
- }
- // 播放背景音乐
- G.AudioMgr.playMusic(this.musicName, true);
- G.AppUtils.setLastSceneName(this.sceneName);
- let canvasNode = cc.find('Canvas');
- // 编辑器自动处理:替换Canvas、导入弹框控制器、Toast控制器
- let canvasEx = canvasNode.getComponent('CanvasEx');
- if (!canvasEx) {
- G.LogUtils.error('请务必给场景的 Canvas 替换成脚本 CanvasEx');
- }
- if (!this.alertCtrl) {
- G.LogUtils.error('请务必在 Canvas 下增加 alertCtrl。预制体在:edt_prefab/ctrl/prefab_alert_ctrl');
- }
- if (!this.loadingCtrl) {
- G.LogUtils.error('请务必在 Canvas 下增加 loadingCtrl。预制体在:edt_prefab/ctrl/prefab_loading_ctrl');
- }
- if (!this.toastCtrl) {
- G.LogUtils.error('请务必在 Canvas 下增加 toastCtrl。预制体在:edt_prefab/ctrl/prefab_toast_ctrl');
- }
- if (!CC_EDITOR && G.OPEN_DEBUG) {
- cc.loader.loadRes('edt_prefab/Debug/debug_enter', cc.Prefab, (err, prefab) => {
- if (err) {
- G.LogUtils.log('err:', err);
- return;
- }
- let node = cc.instantiate(prefab);
- node.name = 'debugCtrl';
- canvasNode.addChild(node);
- });
- }
- },
- /**
- * 生命周期。子类需要调用this._super()
- *
- * @author Pyden
- * @date 2019-03-25
- */
- onEnable () {
- cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this._onKeyUp, this);
- },
- /**
- * 生命周期。子类需要调用this._super()
- *
- * @author Pyden
- * @date 2019-03-25
- */
- onDisable () {
- cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this._onKeyUp, this);
- },
- /**
- * 生命周期。子类需要调用this._super()
- *
- * @author Pyden
- * @date 2019-03-25
- */
- start () {
-
- },
- /**
- * 生命周期。子类需要调用this._super()
- *
- * @author Pyden
- * @date 2019-03-25
- */
- onDestroy () {
-
- },
- /**
- * 处理离线
- *
- * @author libo
- * @date 2020-05-07
- */
- handleOffline () {
- if (this.reconnCtrl) {
- this.reconnCtrl.handleOffline();
- }
- },
- /**
- * 弹出断线重连弹窗
- *
- * @author libo
- * @date 2020-05-07
- */
- showOfflineAlert () {
- if (this.reconnCtrl) {
- this.reconnCtrl.showOfflineAlert();
- }
- },
- /**
- * 显示加载进度
- *
- * @author libo
- * @date 2019-06-25
- */
- showLoadingAlert () {
- this.loadingCtrl.showLoadingAlert();
- },
- /**
- * 更新加载进度
- *
- * @author libo
- * @date 2019-06-25
- * @param {number} completedCount 已完成加载
- * @param {number} totalCount 加载总和
- * @param {string} item 当前加载资源名
- */
- updateLoadingProgress (completedCount, totalCount, item) {
- this.loadingCtrl.updateLoadingProgress(completedCount, totalCount, item);
- },
- /**
- * 点击场景返回
- *
- * @author Pyden
- * @date 2019-03-25
- */
- backOnClicked () {
- // G.AppUtils.loadScene('scene_launch');
- },
- // 详见 AlertCtrl 同名函数
- pushAlert (alert) {
- if (this.alertCtrl) {
- this.alertCtrl.pushAlert(alert);
- }
- },
- // 详见 AlertCtrl 同名函数
- popAlert (alert) {
- if (this.alertCtrl) {
- this.alertCtrl.popAlert(alert);
- }
- },
- // 详见 AlertCtrl 同名函数
- popAllAlert (forceClose) {
- if (this.alertCtrl) {
- this.alertCtrl.popAllAlert(forceClose);
- }
- },
- // 详见 AlertCtrl 同名函数
- closeAlert (alertId) {
- if (this.alertCtrl) {
- return this.alertCtrl.closeAlert(alertId);
- }
- },
- // 详见 AlertCtrl 同名函数
- getAlert (alertId) {
- if (this.alertCtrl) {
- return this.alertCtrl.getAlert(alertId);
- }
- return undefined;
- },
- // 详见 AlertCtrl 同名函数
- getAlertCount () {
- if (this.alertCtrl) {
- return this.alertCtrl.getAlertCount();
- }
- return 0;
- },
- // 详见 AlertCtrl 同名函数
- showNormalAlert (alertId, userdata, cb) {
- if (this.alertCtrl) {
- this.alertCtrl.showNormalAlert(alertId, userdata, cb);
- }
- },
- // 详见 AlertCtrl 同名函数
- showAlert (prefabPath, alertData, cb) {
- if (this.alertCtrl) {
- this.alertCtrl.showAlert(prefabPath, alertData, cb);
- }
- },
- // 详见 ToastCtrl 同名函数
- addToast (msg, holdTime, cb) {
- if (this.toastCtrl) {
- this.toastCtrl.addToast(msg, holdTime, cb);
- }
- },
- // 详见 ToastCtrl 同名函数
- debugToast (msg, holdTime) {
- if (!G.OPEN_DEBUG) {
- return;
- }
- let isOpen = G.DebugMgr.getValue(JMC.DEBUG_KEY.DEBUG_TOAST);
- if (!isOpen) {
- return;
- }
- this.addToast(msg, holdTime);
- },
- // ---------------- 私有方法分割线 ----------------
- /**
- * 键盘点击
- *
- * @author Pyden
- * @date 2019-03-25
- * @param {cc.Event} event
- */
- _onKeyUp (event) {
- if (event.keyCode === cc.macro.KEY.escape || event.keyCode === cc.macro.KEY.back) {
- this._backKeyOnClicked();
- }
- },
- /**
- * 返回键被点击
- *
- * @author Pyden
- * @date 2019-03-25
- */
- _backKeyOnClicked () {
- if (this.loadingCtrl) {
- let ok = this.loadingCtrl.backKeyOnClicked();
- if (ok) {
- return;
- }
- }
- if (this.alertCtrl) {
- let ok = this.alertCtrl.backKeyOnClicked();
- if (ok) {
- return;
- }
- }
- this.backOnClicked();
- },
- });
|