123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- var DWAlert = {
- _alert: null,
- _title: null,
- _detailLabel: null,
- _cancelButton: null,
- _confirmButton: null,
- _confirmCallBack: null,
- _animDuration: 0.3
- };
- /**
- * 显示弹窗
- * @param {string} titleString
- * @param {string} detailString
- * @param {function} confirmCallBack
- * @param {bool} needCancel
- * @param {float} animDuration
- */
- DWAlert.show = function (titleString = "", detailString, confirmCallBack, needCancel = true, animDuration) {
- if (DWAlert._alert != undefined) { return; }
- DWAlert._animDuration = animDuration ? animDuration : DWAlert._animDuration;
- cc.loader.loadRes("./prefabs/DWAlert", cc.Prefab, (error, prefab) => {
- if (error) {
- cc.error(error);
- return;
- }
- var alert = cc.instantiate(prefab);
- DWAlert._alert = alert;
- // 动画
- var cbFadeOut = cc.callFunc(DWAlert.onFadeOutFinish, this);
- var cbFadeIn = cc.callFunc(DWAlert.onFadeInFinish, this);
- this.actionFadeIn = cc.sequence(cc.spawn(cc.fadeTo(DWAlert._animDuration, 255), cc.scaleTo(DWAlert._animDuration, 1.0)), cbFadeIn);
- this.actionFadeOut = cc.sequence(cc.spawn(cc.fadeTo(DWAlert._animDuration, 0), cc.scaleTo(DWAlert._animDuration, 2.0)), cbFadeOut);
- DWAlert._title = cc.find("alertBackground/titleLabel", alert);
- DWAlert._detailLabel = cc.find("alertBackground/detailLabel", alert);
- DWAlert._cancelButton = cc.find("alertBackground/cancelButton", alert);
- DWAlert._confirmButton = cc.find("alertBackground/confirmButton", alert);
- DWAlert._cancelButton.on(cc.Node.EventType.TOUCH_END, DWAlert.clickCancelButton, this);
- DWAlert._confirmButton.on(cc.Node.EventType.TOUCH_END, DWAlert.clickConfirmButton, this);
- DWAlert._alert.parent = cc.find("Canvas");
- DWAlert.startFadeIn();
- DWAlert.config(titleString, detailString, confirmCallBack, needCancel);
- });
- };
- DWAlert.config = function (titleString, detailString, confirmCallBack, needCancel) {
- DWAlert._confirmCallBack = confirmCallBack || function () {};
- DWAlert._title.getComponent(cc.Label).string = titleString;
- if (detailString === undefined || detailString === null) {
- DWAlert._detailLabel.active = false;
- } else {
- DWAlert._detailLabel.active = true;
- DWAlert._detailLabel.getComponent(cc.Label).string = detailString;
- }
- if (needCancel) {
- DWAlert._cancelButton.active = true;
- } else {
- DWAlert._cancelButton.active = false;
- DWAlert._confirmButton.x = 0;
- }
- };
- // 显示弹窗动画
- DWAlert.startFadeIn = function () {
- DWAlert._alert.position = cc.p(0, 0);
- DWAlert._alert.setScale(2);
- DWAlert._alert.opacity = 0;
- DWAlert._alert.runAction(this.actionFadeIn);
- };
- // 关闭弹窗动画
- DWAlert.startFadeOut = function () {
- DWAlert._alert.runAction(this.actionFadeOut);
- };
- // 显示弹窗动画完成回调
- DWAlert.onFadeInFinish = function () {
- };
- // 关闭弹窗动画完成回调
- DWAlert.onFadeOutFinish = function () {
- DWAlert._cancelButton.off(cc.Node.EventType.TOUCH_END, DWAlert.clickCancelButton, this);
- DWAlert._confirmButton.off(cc.Node.EventType.TOUCH_END, DWAlert.clickConfirmButton, this);
- DWAlert.onDestory();
- };
- DWAlert.clickConfirmButton = function () {
- DWAlert._confirmCallBack();
- DWAlert.startFadeOut();
- };
- DWAlert.clickCancelButton = function () {
- DWAlert.startFadeOut();
- };
- DWAlert.onDestory = function() {
- DWAlert._alert = null;
- DWAlert._title = null;
- DWAlert._detailLabel = null;
- DWAlert._cancelButton = null;
- DWAlert._confirmButton = null;
- DWAlert._confirmCallBack = null;
- DWAlert._animDuration = 0.3;
- };
- module.exports = DWAlert;
|