games/FullFire/assets/scripts/manager/UIManager.ts

94 lines
3.0 KiB
TypeScript

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>(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
}
}