import ViewBase from "../ui/ViewBase"; import ResManager from "./ResManager"; import GameManager from "./GameManager"; import Common from "../common/Common"; import Define from "../common/Define"; import WXHelper from "../common/WXHelper"; // Learn TypeScript: // - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html // Learn Attribute: // - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html // - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html export default class UIManager{ private viewArr:ViewBase[] = []; private static instance:UIManager = null; curViewId:number = 0; public static getInstance():UIManager{ if(this.instance == null){ this.instance = new UIManager(); } return this.instance; } //显示界面 showView(viewId:number,callBack:Function = null){ this.curViewId = viewId; if(this.viewArr[viewId] == null){ ResManager.loadPrefab("prefabs/ui/" + Define.viewUrl[viewId],function(prefab){ let viewNode = cc.instantiate(prefab); let viewCtr = (viewNode as cc.Node).getComponent(ViewBase); this.viewArr[viewId] = viewCtr; Common.nodeUiRoot.addChild(viewNode); viewCtr.showView(); if(callBack != null){ callBack(); } }.bind(this)); }else{ if(viewId == Define.viewUpgrade){ WXHelper.showBannder(false) } this.viewArr[viewId].showView() if(callBack != null){ callBack(); } } } //隐藏界面 hideView(viewId:number){ if(this.viewArr[viewId] != null){ this.viewArr[viewId].hideView() }else{ console.log("当前界面没有打开..."); } } //刷新界面 refreshView(viewId:number,isFristRefresh:boolean = false){ if(this.viewArr[viewId] != null){ this.viewArr[viewId].refreshView(isFristRefresh) } } //刷新界面的金币信息 refreshGoldInfo(viewId:number){ if(this.viewArr[viewId] != null){ this.viewArr[viewId].refreshGoldInfo() } } // 其它的事件 executeEvent(viewId:number,eventTag:string = "defualt"){ if(this.viewArr[viewId] != null){ this.viewArr[viewId].executeEvent(eventTag) } } isShow(viewId:number):boolean{ if(this.viewArr[viewId] == null){ return false } return this.viewArr[viewId].isShow } }