123 lines
4.0 KiB
JavaScript
123 lines
4.0 KiB
JavaScript
|
import GameUtil from "../ts/core/GameUtil";
|
||
|
import SKSocket from "../ts/gear_2.3.4/net/SKSocket";
|
||
|
|
||
|
let noticeNormalName = 'SysNotice';
|
||
|
|
||
|
let NoticeBox = cc.Class({
|
||
|
extends: cc.Component,
|
||
|
properties: {
|
||
|
},
|
||
|
|
||
|
ctor() {
|
||
|
this.pfab = null;
|
||
|
},
|
||
|
|
||
|
statics: {
|
||
|
init: function () {
|
||
|
var self = this;
|
||
|
cc.loader.loadRes("Prefabs/Notice", function (error, prefab) {
|
||
|
if (error) {
|
||
|
cc.error(`$錯誤:加載Notice預製體失敗`);
|
||
|
return;
|
||
|
}
|
||
|
self.pfab = prefab;
|
||
|
});
|
||
|
},
|
||
|
addMsg: function (type, msg, okfunc, cancelfunc) {
|
||
|
if (!msg) {
|
||
|
return;
|
||
|
}
|
||
|
if (typeof msg == "number") {
|
||
|
if (msg == 100006) {
|
||
|
let code = SKSocket.shared.lastCode;
|
||
|
msg = `連接服務器失敗,請重新登錄!錯誤碼[${code}]`;
|
||
|
} else {
|
||
|
msg = GameUtil.msgText[msg];
|
||
|
}
|
||
|
}
|
||
|
if (!this.pfab) {
|
||
|
return;
|
||
|
}
|
||
|
let node = cc.instantiate(this.pfab);
|
||
|
node.name = noticeNormalName;
|
||
|
let logic = node.getComponent('NoticeLogic');
|
||
|
logic.type = type;
|
||
|
logic.msg = msg;
|
||
|
logic.okCallback = okfunc;
|
||
|
logic.cancelCallback = cancelfunc;
|
||
|
node.setTimeOut = function (t) {
|
||
|
node.runAction(cc.sequence(cc.delayTime(t), cc.removeSelf()));
|
||
|
};
|
||
|
node.parent = cc.director.getScene();
|
||
|
return node;
|
||
|
},
|
||
|
addTimeMsg: function (type, msg, okfunc, cancelfunc, time) {
|
||
|
if (!msg) {
|
||
|
return;
|
||
|
}
|
||
|
if (!this.pfab) {
|
||
|
return;
|
||
|
}
|
||
|
let node = cc.instantiate(this.pfab);
|
||
|
node.name = noticeNormalName;
|
||
|
let logic = node.getComponent('NoticeLogic');
|
||
|
logic.type = type;
|
||
|
logic.msg = msg;
|
||
|
logic.okCallback = okfunc;
|
||
|
logic.cancelCallback = cancelfunc;
|
||
|
logic.overTime = time;
|
||
|
logic.cancelBtn.getChildByName("New Label").getComponent(cc.Label).string ="取消(" + time + ")"
|
||
|
logic.schedule(() => {
|
||
|
if (logic) {
|
||
|
logic.overTime--
|
||
|
logic.cancelBtn.getChildByName("New Label").getComponent(cc.Label).string ="取消(" + logic.overTime + ")"
|
||
|
if(logic.overTime==-1){
|
||
|
node.unscheduleAllCallbacks()
|
||
|
node.destroy()
|
||
|
}
|
||
|
}
|
||
|
}, 1, time)
|
||
|
|
||
|
node.parent = cc.director.getScene();
|
||
|
return node;
|
||
|
},
|
||
|
|
||
|
addTimeMsg2: function (type, msg, okfunc, cancelfunc, time) {
|
||
|
if (!msg) {
|
||
|
return;
|
||
|
}
|
||
|
if (!this.pfab) {
|
||
|
return;
|
||
|
}
|
||
|
let node = cc.instantiate(this.pfab);
|
||
|
node.name = noticeNormalName;
|
||
|
let logic = node.getComponent('NoticeLogic');
|
||
|
logic.type = type;
|
||
|
logic.msg = msg;
|
||
|
logic.okCallback = okfunc;
|
||
|
logic.cancelCallback = cancelfunc;
|
||
|
logic.overTime = time;
|
||
|
logic.okBtn.getChildByName("New Label").getComponent(cc.Label).string ="確定(" + time + ")"
|
||
|
logic.schedule(() => {
|
||
|
if (logic) {
|
||
|
logic.overTime--
|
||
|
logic.okBtn.getChildByName("New Label").getComponent(cc.Label).string ="確定(" + logic.overTime + ")"
|
||
|
if(logic.overTime==-1){
|
||
|
node.unscheduleAllCallbacks()
|
||
|
node.destroy()
|
||
|
}
|
||
|
}
|
||
|
}, 1, time)
|
||
|
|
||
|
node.parent = cc.director.getScene();
|
||
|
return node;
|
||
|
},
|
||
|
|
||
|
removeMsg: function () {
|
||
|
let notice = cc.director.getScene().getChildByName(noticeNormalName);
|
||
|
if (notice) {
|
||
|
notice.destroy();
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
});
|