94 lines
3.0 KiB
TypeScript
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
|
|
}
|
|
}
|