|
@@ -10,7 +10,9 @@ export default class UISystem extends cc.Component {
|
|
|
/** panel父节点 */
|
|
/** panel父节点 */
|
|
|
private panelParent: cc.Node = null;
|
|
private panelParent: cc.Node = null;
|
|
|
/** 界面预制体路径 */
|
|
/** 界面预制体路径 */
|
|
|
- private panelPrefanbUrl: string = './prefab/uiPanel/'
|
|
|
|
|
|
|
+ private gamePanelbUrl: string = './gamePrefab/uiPanel';
|
|
|
|
|
+ /** 模块界面预制体路径 */
|
|
|
|
|
+ private modulPanelUrl: string = './module';
|
|
|
/** 是否正在打开界面 */
|
|
/** 是否正在打开界面 */
|
|
|
private isPanelOpening: boolean = false;
|
|
private isPanelOpening: boolean = false;
|
|
|
/** 是否界面正在关闭 */
|
|
/** 是否界面正在关闭 */
|
|
@@ -33,9 +35,12 @@ export default class UISystem extends cc.Component {
|
|
|
/**
|
|
/**
|
|
|
* 打开panel界面
|
|
* 打开panel界面
|
|
|
* @param panelName 界面名称
|
|
* @param panelName 界面名称
|
|
|
|
|
+ * @param panelType 界面类型
|
|
|
* @param openAction 打开之后的操(需不需要关闭其他界面)
|
|
* @param openAction 打开之后的操(需不需要关闭其他界面)
|
|
|
*/
|
|
*/
|
|
|
- openPanel(panelName: string, openAction: OpenActionType = OpenActionType.normal): Promise<any> {
|
|
|
|
|
|
|
+ openPanel(panelName: string, panelType: PanelType, openAction: OpenActionType = OpenActionType.normal): Promise<any> {
|
|
|
|
|
+
|
|
|
|
|
+ let panelUrl = this.getUrlByPanelType(panelName, panelType);
|
|
|
|
|
|
|
|
let self = this;
|
|
let self = this;
|
|
|
if (self.isPanelOpening || self.getCurOnPanel(panelName)) {
|
|
if (self.isPanelOpening || self.getCurOnPanel(panelName)) {
|
|
@@ -46,7 +51,7 @@ export default class UISystem extends cc.Component {
|
|
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
|
|
- mk.loader.load(`${self.panelPrefanbUrl}` + panelName, cc.Prefab)
|
|
|
|
|
|
|
+ mk.loader.load(`${panelUrl}`, cc.Prefab)
|
|
|
.then((prefab) => {
|
|
.then((prefab) => {
|
|
|
|
|
|
|
|
self.isPanelOpening = false;
|
|
self.isPanelOpening = false;
|
|
@@ -127,6 +132,24 @@ export default class UISystem extends cc.Component {
|
|
|
delete this.curOnPanelDic[panelName];
|
|
delete this.curOnPanelDic[panelName];
|
|
|
this.isPanelClosing = false;
|
|
this.isPanelClosing = false;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据界面类型获取url
|
|
|
|
|
+ * @param panelName 界面名称
|
|
|
|
|
+ * @param panelType 界面类型
|
|
|
|
|
+ */
|
|
|
|
|
+ getUrlByPanelType(pannelName: string, panelType: PanelType): string {
|
|
|
|
|
+ let url: string = "";
|
|
|
|
|
+ switch (panelType) {
|
|
|
|
|
+ case PanelType.Game:
|
|
|
|
|
+ url = `${this.gamePanelbUrl}/${pannelName}`
|
|
|
|
|
+ break;
|
|
|
|
|
+ case PanelType.Module:
|
|
|
|
|
+ url = `${this.modulPanelUrl}/${pannelName}/${pannelName}`
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ return url;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/** 界面打开操作 */
|
|
/** 界面打开操作 */
|
|
@@ -141,6 +164,8 @@ export enum OpenActionType {
|
|
|
|
|
|
|
|
/** */
|
|
/** */
|
|
|
export enum PanelType {
|
|
export enum PanelType {
|
|
|
|
|
+ /**游戏界面 */
|
|
|
Game = 1,
|
|
Game = 1,
|
|
|
|
|
+ /**模块界面 */
|
|
|
Module = 2,
|
|
Module = 2,
|
|
|
}
|
|
}
|