[add] Lobby 按鈕功能
This commit is contained in:
51
assets/Script/Common/Message/CSMessage.ts
Normal file
51
assets/Script/Common/Message/CSMessage.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
// import CSSettingsV3 from "../../FormTable/CSSettingsV3";
|
||||
import { MessageNormal, MessageNormalData } from "./MessageNormal";
|
||||
|
||||
/** 訊息框相關 */
|
||||
export default class CSMessage {
|
||||
private static _sourceUI: cc.Prefab;
|
||||
private static _parent: cc.Node;
|
||||
|
||||
public static Initialize(sourceUI: cc.Prefab, parent: cc.Node): void {
|
||||
this._sourceUI = sourceUI;
|
||||
this._parent = parent;
|
||||
}
|
||||
|
||||
/** 一個按鈕的訊息框 */
|
||||
public static CreateYesMsg(content: string, yesCallback: () => void = null, enterStr: string = null): void {
|
||||
// enterStr = enterStr ? enterStr : CSSettingsV3.prototype.CommonString(3);
|
||||
enterStr = enterStr ? enterStr : "確定";
|
||||
let data: MessageNormalData = {
|
||||
content: content,
|
||||
isShowCancel: false,
|
||||
yesCallback: yesCallback,
|
||||
noCallback: null,
|
||||
enterName: enterStr,
|
||||
cancelName: null
|
||||
};
|
||||
MessageNormal.Create(this._sourceUI, this._parent, data);
|
||||
}
|
||||
|
||||
/** 兩個按鈕的訊息框 */
|
||||
public static CreateYesNoMsg(content: string, yesCallback: () => void = null, noCallback: () => void = null, enterStr: string = null, cancelStr: string = null): void {
|
||||
// enterStr = enterStr ? enterStr : CSSettingsV3.prototype.CommonString(3);
|
||||
// cancelStr = cancelStr ? cancelStr : CSSettingsV3.prototype.CommonString(4);
|
||||
enterStr = enterStr ? enterStr : "確定";
|
||||
cancelStr = cancelStr ? cancelStr : "取消";
|
||||
let data: MessageNormalData = {
|
||||
content: content,
|
||||
isShowCancel: true,
|
||||
yesCallback: yesCallback,
|
||||
noCallback: noCallback,
|
||||
enterName: enterStr,
|
||||
cancelName: cancelStr
|
||||
};
|
||||
MessageNormal.Create(this._sourceUI, this._parent, data);
|
||||
}
|
||||
|
||||
/** 網路錯誤訊息 */
|
||||
public static NetError(method: string, state: number, str: string = ""): void {
|
||||
let error: string = String.Format("[{0}] state:{1} {2}", method, state, str);
|
||||
cc.warn("網路錯誤訊息: ", error);
|
||||
}
|
||||
}
|
||||
9
assets/Script/Common/Message/CSMessage.ts.meta
Normal file
9
assets/Script/Common/Message/CSMessage.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.0.8",
|
||||
"uuid": "3f92822f-2324-4f9f-9480-0c1a5b16815f",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
71
assets/Script/Common/Message/MessageNormal.ts
Normal file
71
assets/Script/Common/Message/MessageNormal.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import { CoroutineV2 } from "../../Engine/CatanEngine/CoroutineV2/CoroutineV2";
|
||||
import UIPanel from "../../Engine/Component/UIPanel/UIPanel";
|
||||
|
||||
const { ccclass, property } = cc._decorator;
|
||||
|
||||
export interface MessageNormalData {
|
||||
content: string;
|
||||
// title: string;
|
||||
isShowCancel: boolean;
|
||||
yesCallback: () => void;
|
||||
noCallback: () => void;
|
||||
enterName: string;
|
||||
cancelName: string;
|
||||
}
|
||||
|
||||
@ccclass
|
||||
export class MessageNormal extends UIPanel {
|
||||
@property({ displayName: "訊息內容", type: cc.Label })
|
||||
public Content: cc.Label = null;
|
||||
// @property({ displayName: "標題", type: cc.Label })
|
||||
// public Title: cc.Label = null;
|
||||
@property({ displayName: "確定鈕", type: cc.Button })
|
||||
public EnterBtn: cc.Button = null;
|
||||
@property({ displayName: "取消鈕", type: cc.Button })
|
||||
public CancalBtn: cc.Button = null;
|
||||
@property({ displayName: "確定鈕文字", type: cc.Label })
|
||||
public EnterText: cc.Label = null;
|
||||
@property({ displayName: "取消鈕文字", type: cc.Label })
|
||||
public CancalText: cc.Label = null;
|
||||
private _data: MessageNormalData;
|
||||
|
||||
protected ImplementInitial(...initData: any[]): void {
|
||||
this._data = initData[0];
|
||||
this.Content.string = this._data.content;
|
||||
// this.Title.string = this._data.title;
|
||||
if (this._data.enterName) {
|
||||
this.EnterText.string = this._data.enterName;
|
||||
} else {
|
||||
this._data.enterName = "";
|
||||
}
|
||||
this.EnterText.string = this._data.enterName;
|
||||
if (this._data.cancelName) {
|
||||
this.CancalText.string = this._data.cancelName;
|
||||
} else {
|
||||
this.CancalText.string = "";
|
||||
}
|
||||
|
||||
this.CancalBtn.node.active = this._data.isShowCancel;
|
||||
}
|
||||
|
||||
public OnEnter(): void {
|
||||
if (this._data.yesCallback) {
|
||||
this._data.yesCallback();
|
||||
}
|
||||
this.node.destroy();
|
||||
}
|
||||
|
||||
public OnCancel(): void {
|
||||
if (this._data.noCallback) {
|
||||
this._data.noCallback();
|
||||
}
|
||||
this.node.destroy();
|
||||
}
|
||||
|
||||
public static Create(sourceUI: cc.Prefab, parent: cc.Node, data: MessageNormalData): void {
|
||||
let node: cc.Node = parent.ExAddChild(sourceUI);
|
||||
let script: MessageNormal = node.getComponent(MessageNormal);
|
||||
script.Initial(data);
|
||||
CoroutineV2.Single(script.Show()).Start();
|
||||
}
|
||||
}
|
||||
9
assets/Script/Common/Message/MessageNormal.ts.meta
Normal file
9
assets/Script/Common/Message/MessageNormal.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.0.8",
|
||||
"uuid": "539c898e-ee41-414a-a279-7ec1a8a9f5be",
|
||||
"isPlugin": false,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"subMetas": {}
|
||||
}
|
||||
Reference in New Issue
Block a user