mirror of
https://github.com/Gongxh0901/kunpolibrary
synced 2025-12-06 04:39:10 +00:00
仓库中添加内置的demo
This commit is contained in:
126
demo/assets/script/UI/Basics/Common/AlertWindow.ts
Normal file
126
demo/assets/script/UI/Basics/Common/AlertWindow.ts
Normal file
@@ -0,0 +1,126 @@
|
||||
import { cc, fgui, kunpo } from '../../../header';
|
||||
const { uiclass, uiprop, uiclick } = kunpo._uidecorator;
|
||||
|
||||
interface WindowData {
|
||||
content: string;
|
||||
title?: string;
|
||||
okTitle?: string;
|
||||
cancelTitle?: string;
|
||||
showClose?: boolean; // 显示关闭按钮
|
||||
emptyAreaClose?: boolean; // 点击空白区域关闭
|
||||
align?: cc.HorizontalTextAlignment; // 内容文本水平对齐方式 default:居中对齐
|
||||
leading?: number;//行距
|
||||
okNotClose?: boolean; // 点击OK按钮时不关闭本界面
|
||||
cancelNotClose?: boolean; // 点击取消按钮时不关闭本界面
|
||||
complete?: () => void; // 确定按钮的回调
|
||||
cancel?: () => void; // 取消按钮的回调
|
||||
close?: () => void; // 关闭界面的回调 (只有点击关闭按钮和空白位置关闭时才会触发)
|
||||
}
|
||||
|
||||
|
||||
@uiclass("Window", "Basics", "AlertWindow")
|
||||
export class AlertWindow extends kunpo.Window {
|
||||
@uiprop private bg: fgui.GLoader;
|
||||
@uiprop private lab_title: fgui.GTextField;
|
||||
@uiprop private lab_content: fgui.GTextField;
|
||||
@uiprop private btn_close: fgui.GButton;
|
||||
@uiprop private btn_ok: fgui.GButton;
|
||||
@uiprop private btn_cancel: fgui.GButton;
|
||||
|
||||
private _isEmptyAreaClose: boolean = false;
|
||||
private _window_data: WindowData = null;
|
||||
|
||||
private _complete: () => void;
|
||||
private _cancel: () => void;
|
||||
private _closeFunc: () => void;
|
||||
|
||||
protected onInit(): void {
|
||||
this.adapterType = kunpo.AdapterType.Full;
|
||||
this.type = kunpo.WindowType.Normal;
|
||||
}
|
||||
|
||||
protected onAdapted() {
|
||||
}
|
||||
|
||||
protected onShow(data: WindowData): void {
|
||||
this._complete = data.complete;
|
||||
this._cancel = data.cancel;
|
||||
this._closeFunc = data.close;
|
||||
this._window_data = data;
|
||||
|
||||
// 标题
|
||||
if (data.title) {
|
||||
this.lab_title.text = data.title;
|
||||
} else {
|
||||
this.lab_title.visible = false;
|
||||
}
|
||||
|
||||
// 关闭按钮
|
||||
this.btn_close.visible = !!data.showClose;
|
||||
|
||||
// 空白位置关闭标记
|
||||
this._isEmptyAreaClose = !!data.emptyAreaClose;
|
||||
|
||||
// 确定按钮
|
||||
if (data.okTitle) {
|
||||
this.btn_ok.title = data.okTitle;
|
||||
} else {
|
||||
this.btn_ok.visible = false;
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
if (data.cancelTitle) {
|
||||
this.btn_cancel.text = data.cancelTitle;
|
||||
} else {
|
||||
this.btn_cancel.visible = false;
|
||||
}
|
||||
|
||||
this.lab_content.text = data.content;
|
||||
let align = typeof data.align == "number" ? data.align : cc.Label.HorizontalAlign.CENTER;
|
||||
let leading = typeof data.leading == "number" ? data.leading : this.lab_content.leading;
|
||||
this.lab_content.align = align;
|
||||
this.lab_content.leading = leading;
|
||||
this.lab_content.ensureSizeCorrect();
|
||||
|
||||
// 限制背景框高度
|
||||
if (this.bg.height < 500) {
|
||||
this.bg.height = 500;
|
||||
}
|
||||
|
||||
// 确定取消按钮位置调整
|
||||
if (this.btn_ok.visible && !this.btn_cancel.visible) {
|
||||
this.btn_ok.x = this.bg.x + (this.bg.width - this.btn_ok.width) * 0.5;
|
||||
} else if (this.btn_cancel.visible && !this.btn_ok.visible) {
|
||||
this.btn_cancel.x = this.bg.x + (this.bg.width - this.btn_cancel.width) * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
protected onClose(): void {
|
||||
|
||||
}
|
||||
|
||||
protected onEmptyAreaClick(): void {
|
||||
if (this._isEmptyAreaClose) {
|
||||
kunpo.WindowManager.closeWindow(this.name);
|
||||
this._closeFunc && this._closeFunc();
|
||||
}
|
||||
}
|
||||
|
||||
@uiclick
|
||||
private onClickBtnClose(): void {
|
||||
kunpo.WindowManager.closeWindow(this.name);
|
||||
this._closeFunc && this._closeFunc();
|
||||
}
|
||||
|
||||
@uiclick
|
||||
private onClickBtnOk(): void {
|
||||
!this._window_data.okNotClose && kunpo.WindowManager.closeWindow(this.name);
|
||||
this._complete && this._complete();
|
||||
}
|
||||
|
||||
@uiclick
|
||||
private onClickBtnCancel(): void {
|
||||
!this._window_data.cancelNotClose && kunpo.WindowManager.closeWindow(this.name);
|
||||
this._cancel && this._cancel();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user