123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- var t = require;
- var e = module;
- var a = exports;
- var i =
- (this && this.__awaiter) ||
- function (t, n, r, l) {
- return new (r = r || Promise)(function (i, e) {
- function s(t) {
- try {
- a(l.next(t));
- } catch (t) {
- e(t);
- }
- }
- function o(t) {
- try {
- a(l.throw(t));
- } catch (t) {
- e(t);
- }
- }
- function a(t) {
- var e;
- t.done
- ? i(t.value)
- : ((e = t.value) instanceof r
- ? e
- : new r(function (t) {
- t(e);
- })
- ).then(s, o);
- }
- a((l = l.apply(t, n || [])).next());
- });
- };
- Object.defineProperty(a, "__esModule", {value: !0}), (a.ViewManagerEvent = void 0);
- const n = t("ViewConst"),
- r = t("LayerManager"),
- l = t("App"),
- h = t("BaseView");
- a.ViewManagerEvent = {VIEW_IS_OPEN: "viewIsOpen", VIEW_IS_CLOSE: "viewIsClose"};
- class s {
- constructor() {
- (this._views = {}),
- (this._opens = {}),
- (this._viewCache = {}),
- (this._viewLoadingCache = {}),
- (this.uiRoot = null),
- (this.curScene = null);
- }
- reset() {
- (this.uiRoot = cc.find("Canvas")), r.default.reset();
- }
- clear() {
- this.closeAll(), (this._views = {});
- }
- register(t, e) {
- null != e && (this._views[t] || (this._views[t] = e));
- }
- register1(t, e) {
- null != t && (this._views[t.key] || ((t.controller = e), (this._views[t.key] = t)));
- }
- getViewInfoByController(t) {
- const e = [];
- for (const i in this._views) this._views[i].controller == t && e.push(i);
- return e;
- }
- unregister(t) {
- this._views[t] && delete this._views[t];
- }
- getViewRegisterData(t) {
- return this._views[t];
- }
- removeView(t) {
- delete this._viewCache[t], delete this._viewLoadingCache[t], delete this._opens[t], delete this._views[t];
- }
- hasFullScreenViwe() {
- for (const t in this._opens) if (this._opens[t].isFullScreen()) return !0;
- return !1;
- }
- removeByController(t) {}
- destroy(t) {
- var e = this.getView(t);
- e && (this.unregister(t), e.destroyView(), delete this._viewCache[t]);
- }
- checkIsNeedAddBg() {
- for (let e = this.uiRoot.children.length - 1; 1 < e; e--) {
- let t = this.uiRoot.children[e].getComponent(h.default);
- if (t && 1 === t.bgType) {
- r.default.layerBg.parent && r.default.layerBg.parent.removeChild(r.default.layerBg, !1);
- var i = t.node.getSiblingIndex();
- return (
- (r.default.layerBg.zIndex = t.node.zIndex),
- this.uiRoot.insertChild(r.default.layerBg, i),
- (r.default.layerBg.active = !0),
- void (r.default.curBgView = t)
- );
- }
- }
- r.default.layerBg &&
- r.default.layerBg.parent &&
- (r.default.layerBg.parent.removeChild(r.default.layerBg, !1), (r.default.curBgView = null));
- }
- getTopView() {
- for (let t = this.uiRoot.children.length - 1; 0 < t; t--) {
- const i = this.uiRoot.children[t];
- for (let t = i.children.length - 1; 0 <= t; t--) {
- var e = i.children[t].getComponent(h.default);
- if (e) return e;
- }
- }
- }
- addBg(t) {}
- open(o, ...t) {
- return i(this, void 0, void 0, function* () {
- let e = this._views[o];
- if (e) {
- Log.trace("开启面板:", e.prefabName),
- e.isScene && this.curScene && (yield r.default.ins.showChangeSceneEffect());
- var i = this.getView(o);
- if (null == i) {
- if (!e) return void Log.trace("UI_" + o + "不存在");
- if (this._viewLoadingCache[o]) return void Log.warn("面板正在加载预制体", o);
- try {
- (this._viewLoadingCache[o] = !0),
- e.isNotShowLoad || l.default.EasyLoading.showLoadingByTime(20),
- e.preLoadFunc && (yield e.preLoadFunc());
- var s = yield l.default.ResManager.getResAsync(
- "/prefab/view/" + (e.dir ? e.dir + "/" : "") + e.prefabName
- );
- if (
- (e.isNotShowLoad || l.default.EasyLoading.hideLoading(),
- Log.trace("开启面板完毕:", e.prefabName),
- !this._viewLoadingCache[o])
- )
- return;
- delete this._viewLoadingCache[o];
- let t = cc.instantiate(s);
- ((i = t.getComponent(h.default)).viewId = o),
- (t.zIndex = e.zIndex),
- (i.controller = e.controller),
- (i.node.active = !1),
- (this._viewCache[o] = i),
- (e.controller[e.prefabName[0].toLocaleLowerCase() + e.prefabName.slice(1)] = i),
- e.controller.onLoadView(i);
- } catch (t) {
- return (
- delete this._viewLoadingCache[o],
- void Log.error(
- `\u52a0\u8f7d\u8d44\u6e90\u9762\u677f\u51fa\u9519,\u9762\u677fid:${o} ${n.ViewConst[o]} `,
- t
- )
- );
- }
- }
- return (
- i.isShow()
- ? (Log.warn("面板已经打开了:", o), i.reOpen(...t))
- : ((this._opens[o] = i).setVisible(!0),
- this.addBg(i),
- e.isScene && this.curScene && this.curScene.changeScenePre(),
- i.addToParent(this.uiRoot),
- i.isInit() || (yield i.loadResource(), (i.enabled = !0), i.initUI(), i.initData()),
- e.isScene && (this.curScene && this.closeAll([6, o]), (this.curScene = i)),
- yield i.open(...t),
- e.controller.onOpenView(i),
- e.isScene && r.default.ins.hideChangeSceneEffect(),
- l.default.NotificationCenter.dispatch(a.ViewManagerEvent.VIEW_IS_OPEN, i.viewId)),
- i
- );
- }
- });
- }
- close(e, ...i) {
- if (this._viewLoadingCache[e]) delete this._viewLoadingCache[e];
- else if (this.isShow(e)) {
- var s = this.getView(e);
- Log.trace("关闭面板:", s.name);
- let t = this._views[e];
- delete this._opens[e],
- s.removeFromParent(),
- s.close.apply(s, i),
- t.controller.onCloseView && t.controller.onCloseView(s);
- }
- }
- closeView(t, ...e) {
- this.close(t.viewId, ...e);
- }
- getView(t) {
- return this._opens[t] || this._viewCache[t];
- }
- closeAll(t) {
- for (const i of Object.values(this._opens)) (t && -1 < t.indexOf(i.viewId)) || this.close(i.viewId);
- for (const s in this._viewLoadingCache) {
- var e = parseInt(s);
- (t && -1 < t.indexOf(e)) || this.close(e);
- }
- }
- destoryAllView(t) {
- for (const i in this._viewCache) {
- var e = this._viewCache[i];
- (t && -1 < t.indexOf(e.viewId)) || this.destoryView(parseInt(i));
- }
- this._viewLoadingCache = {};
- }
- destoryView(e) {
- if (!this._viewLoadingCache[e]) {
- let t = this._viewCache[e];
- t &&
- (t.node && (t.node.parent && t.node.removeFromParent(), t.node.isValid && t.node.destroy()),
- t.destroyView());
- }
- let t = this._views[e];
- delete t.controller[t.prefabName[0].toLocaleLowerCase() + t.prefabName.slice(1)],
- delete this._viewCache[e],
- delete this._viewLoadingCache[e],
- delete this._opens[e];
- }
- releaseViewRes(t) {
- var e = this._views[t];
- e &&
- (this.destoryView(t),
- l.default.ResManager.releaseAsset("/prefab/view/" + (e.dir ? e.dir + "/" : "") + e.prefabName, cc.Prefab));
- }
- currOpenNum() {
- return Object.keys(this._opens).length;
- }
- isShow(t) {
- return this._opens[t];
- }
- isViewLoading(t) {
- return this._viewLoadingCache[t];
- }
- isViewShowOrLoading(t) {
- return this._opens[t] || this._viewLoadingCache[t];
- }
- }
- ((a.default = s).VIEW_IS_OPEN = "viewIsOpen"), (s.VIEW_IS_CLOSE = "viewIsClose");
|