UNPKG

laya-coreui-es

Version:

laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改

265 lines (264 loc) 11.5 kB
import { View } from "./View"; import { DialogManager } from "./DialogManager"; import { UIComponent } from "./UIComponent"; import { Event } from "../events/Event"; import { Handler } from "../utils/Handler"; import { Tween } from "../utils/Tween"; /** * <code>Dialog</code> 组件是一个弹出对话框,实现对话框弹出,拖动,模式窗口功能。 * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭等 * 通过设置zOrder属性,可以更改弹出的层次 * 通过设置popupEffect和closeEffect可以设置弹出效果和关闭效果,如果不想有任何弹出关闭效果,可以设置前述属性为空 * * @example <caption>以下示例代码,创建了一个 <code>Dialog</code> 实例。</caption> * package * { * import laya.ui.Dialog; * import laya.utils.Handler; * public class Dialog_Example * { * private var dialog:Dialog_Instance; * public function Dialog_Example() * { * Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, onLoadComplete));//加载资源。 * } * private function onLoadComplete():void * { * dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 * dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 * dialog.show();//显示 dialog。 * dialog.closeHandler = new Handler(this, onClose);//设置 dialog 的关闭函数处理器。 * } * private function onClose(name:String):void * { * if (name == Dialog.CLOSE) * { * trace("通过点击 name 为" + name +"的组件,关闭了dialog。"); * } * } * } * } * import laya.ui.Button; * import laya.ui.Dialog; * import laya.ui.Image; * class Dialog_Instance extends Dialog * { * function Dialog_Instance():void * { * var bg:Image = new Image("resource/ui/bg.png"); * bg.sizeGrid = "40,10,5,10"; * bg.width = 150; * bg.height = 250; * addChild(bg); * var image:Image = new Image("resource/ui/image.png"); * addChild(image); * var button:Button = new Button("resource/ui/btn_close.png"); * button.name = Dialog.CLOSE;//设置button的name属性值。 * button.x = 0; * button.y = 0; * addChild(button); * } * } * @example * Laya.init(640, 800);//设置游戏画布宽高、渲染模式 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 * var dialog; * Laya.loader.load("resource/ui/btn_close.png", laya.utils.Handler.create(this, loadComplete));//加载资源 * (function (_super) {//新建一个类Dialog_Instance继承自laya.ui.Dialog。 * function Dialog_Instance() { * Dialog_Instance.__super.call(this);//初始化父类 * var bg = new laya.ui.Image("resource/ui/bg.png");//新建一个 Image 类的实例 bg 。 * bg.sizeGrid = "10,40,10,5";//设置 bg 的网格信息。 * bg.width = 150;//设置 bg 的宽度。 * bg.height = 250;//设置 bg 的高度。 * this.addChild(bg);//将 bg 添加到显示列表。 * var image = new laya.ui.Image("resource/ui/image.png");//新建一个 Image 类的实例 image 。 * this.addChild(image);//将 image 添加到显示列表。 * var button = new laya.ui.Button("resource/ui/btn_close.png");//新建一个 Button 类的实例 bg 。 * button.name = laya.ui.Dialog.CLOSE;//设置 button 的 name 属性值。 * button.x = 0;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y = 0;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * this.addChild(button);//将 button 添加到显示列表。 * }; * Laya.class(Dialog_Instance,"mypackage.dialogExample.Dialog_Instance",_super);//注册类Dialog_Instance。 * })(laya.ui.Dialog); * function loadComplete() { * console.log("资源加载完成!"); * dialog = new mypackage.dialogExample.Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 * dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 * dialog.show();//显示 dialog。 * dialog.closeHandler = new laya.utils.Handler(this, onClose);//设置 dialog 的关闭函数处理器。 * } * function onClose(name) { * if (name == laya.ui.Dialog.CLOSE) { * console.log("通过点击 name 为" + name + "的组件,关闭了dialog。"); * } * } * @example * import Dialog = laya.ui.Dialog; * import Handler = laya.utils.Handler; * class Dialog_Example { * private dialog: Dialog_Instance; * constructor() { * Laya.init(640, 800);//设置游戏画布宽高。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, this.onLoadComplete));//加载资源。 * } * private onLoadComplete(): void { * this.dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 * this.dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 * this.dialog.show();//显示 dialog。 * this.dialog.closeHandler = new Handler(this, this.onClose);//设置 dialog 的关闭函数处理器。 * } * private onClose(name: string): void { * if (name == Dialog.CLOSE) { * console.log("通过点击 name 为" + name + "的组件,关闭了dialog。"); * } * } * } * import Button = laya.ui.Button; * class Dialog_Instance extends Dialog { * Dialog_Instance(): void { * var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png"); * bg.sizeGrid = "40,10,5,10"; * bg.width = 150; * bg.height = 250; * this.addChild(bg); * var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png"); * this.addChild(image); * var button: Button = new Button("resource/ui/btn_close.png"); * button.name = Dialog.CLOSE;//设置button的name属性值。 * button.x = 0; * button.y = 0; * this.addChild(button); * } * } */ export declare class Dialog extends View { /**对话框内的某个按钮命名为close,点击此按钮则会关闭*/ static CLOSE: string; /**对话框内的某个按钮命名为cancel,点击此按钮则会关闭*/ static CANCEL: string; /**对话框内的某个按钮命名为sure,点击此按钮则会关闭*/ static SURE: string; /**对话框内的某个按钮命名为no,点击此按钮则会关闭*/ static NO: string; /**对话框内的某个按钮命名为yes,点击此按钮则会关闭*/ static YES: string; /**对话框内的某个按钮命名为ok,点击此按钮则会关闭*/ static OK: string; /**@private 表示对话框管理器。*/ private static _manager; /**对话框管理容器,所有的对话框都在该容器内,并且受管理器管理,可以自定义自己的管理器,来更改窗口管理的流程。 * 任意对话框打开和关闭,都会触发管理类的openclose事件*/ static get manager(): DialogManager; static set manager(value: DialogManager); /** * 对话框被关闭时会触发的回调函数处理器。 * <p>回调函数参数为用户点击的按钮名字name:String。</p> */ closeHandler: Handler; /** * 弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null * 全局默认弹出效果可以通过manager.popupEffect修改 */ popupEffect: Handler; /** * 关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null * 全局默认关闭效果可以通过manager.closeEffect修改 */ closeEffect: Handler; /**组名称*/ group: string; /**是否是模式窗口*/ isModal: boolean; /**是否显示弹出效果*/ isShowEffect: boolean; /**指定对话框是否居中弹。<p>如果值为true,则居中弹出,否则,则根据对象坐标显示,默认为true。</p>*/ isPopupCenter: boolean; /**关闭类型,点击name为"close""cancel""sure""no""yes""no"的按钮时,会自动记录点击按钮的名称*/ closeType: string; /**@private */ private _dragArea; constructor(); /**@private 提取拖拽区域*/ protected _dealDragArea(): void; /** * 用来指定对话框的拖拽区域。默认值为"0,0,0,0"。 * <p><b>格式:</b>构成一个矩形所需的 x,y,width,heith 值,用逗号连接为字符串。 * 例如:"0,0,100,200"。</p> * @see #includeExamplesSummary 请参考示例 */ get dragArea(): string; set dragArea(value: string); /**@private */ private _onMouseDown; /**@private 处理默认点击事件*/ protected _onClick(e: Event): void; /** * @inheritDoc * @override */ open(closeOther?: boolean, param?: any): void; /** * 关闭对话框。 * @param type 关闭的原因,会传递给onClosed函数 * @override */ close(type?: string): void; /** * @inheritDoc * @override */ destroy(destroyChild?: boolean): void; /** * 显示对话框(以非模式窗口方式显示)。 * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。 * @param showEffect 是否显示弹出效果 */ show(closeOther?: boolean, showEffect?: boolean): void; /** * 显示对话框(以模式窗口方式显示)。 * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。 * @param showEffect 是否显示弹出效果 */ popup(closeOther?: boolean, showEffect?: boolean): void; /**@private */ protected _open(modal: boolean, closeOther: boolean, showEffect: boolean): void; /**弹出框的显示状态;如果弹框处于显示中,则为true,否则为false;*/ get isPopup(): boolean; /** * @inheritDoc * @override */ set zOrder(value: number); /** * @inheritDoc * @override */ get zOrder(): number; /** * 设置锁定界面,在界面未准备好前显示锁定界面,准备完毕后则移除锁定层,如果为空则什么都不显示 * @param view 锁定界面内容 */ static setLockView(view: UIComponent): void; /** * 锁定所有层,显示加载条信息,防止下面内容被点击 */ static lock(value: boolean): void; /**关闭所有对话框。*/ static closeAll(): void; /** * 根据组获取对话框集合 * @param group 组名称 * @return 对话框数组 */ static getDialogsByGroup(group: string): any[]; /** * 根据组关闭所有弹出框 * @param group 需要关闭的组名称 */ static closeByGroup(group: string): any[]; }