UNPKG

laya-coreui-es

Version:

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

413 lines (412 loc) 15.4 kB
import { UIComponent } from "./UIComponent"; import { ISelect } from "./ISelect"; import { Text } from "../display/Text"; import { Event } from "../events/Event"; import { AutoBitmap } from "./AutoBitmap"; import { Handler } from "../utils/Handler"; /** * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。 * @eventType laya.events.Event */ /** * <code>Button</code> 组件用来表示常用的多态按钮。 <code>Button</code> 组件可显示文本标签、图标或同时显示两者。 * * <p>可以是单态,两态和三态,默认三态(up,over,down)。</p> * * @example <caption>以下示例代码,创建了一个 <code>Button</code> 实例。</caption> * package * { * import laya.ui.Button; * import laya.utils.Handler; * public class Button_Example * { * public function Button_Example() * { * Laya.init(640, 800);//设置游戏画布宽高。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。 * } * private function onLoadComplete():void * { * trace("资源加载完成!"); * var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。 * button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。 * Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 * } * private function onClickButton(button:Button):void * { * trace("按钮button被点击了!"); * } * } * } * @example * Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 * function loadComplete() * { * console.log("资源加载完成!"); * var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 * button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理函数。 * Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 * } * function onClickButton(button) * { * console.log("按钮被点击了。",button); * } * @example * import Button=laya.ui.Button; * import Handler=laya.utils.Handler; * class Button_Example{ * constructor() * { * Laya.init(640, 800); * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/button.png", laya.utils.Handler.create(this,this.onLoadComplete));//加载资源。 * } * private onLoadComplete() * { * var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。 * button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * button.clickHandler = new Handler(this, this.onClickButton,[button]);//设置 button 的点击事件处理器。 * Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 * } * private onClickButton(button:Button):void * { * console.log("按钮button被点击了!") * } * } */ export declare class Button extends UIComponent implements ISelect { /** * 按钮状态集。 */ protected static stateMap: any; /** * 指定按钮按下时是否是切换按钮的显示状态。 * * @example 以下示例代码,创建了一个 <code>Button</code> 实例,并设置为切换按钮。 * @example * package * { * import laya.ui.Button; * import laya.utils.Handler; * public class Button_toggle * { * public function Button_toggle() * { * Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete)); * } * private function onLoadComplete():void * { * trace("资源加载完成!"); * var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 实例对象 button ,传入它的皮肤skin和标签label。 * button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * button.toggle = true;//设置 button 对象为切换按钮。 * button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。 * Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 * } * private function onClickButton(button:Button):void * { * trace("button.selected = "+ button.selected); * } * } * } * @example * Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 * function loadComplete() * { * console.log("资源加载完成!"); * var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 * button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * button.toggle = true;//设置 button 对象为切换按钮。 * button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理器。 * Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 * } * function onClickButton(button) * { * console.log("button.selected = ",button.selected); * } * @example * Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("button.png", null,null, null, null, null);//加载资源 * function loadComplete() { * console.log("资源加载完成!"); * var button:laya.ui.Button = new laya.ui.Button("button.png", "label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 * button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 * button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 * button.toggle = true;//设置 button 对象为切换按钮。 * button.clickHandler = laya.utils.Handler.create(this, onClickButton, [button], false);//设置 button 的点击事件处理器。 * Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 * } * function onClickButton(button) { * console.log("button.selected = ", button.selected); * } */ toggle: boolean; /** * @private */ protected _bitmap: AutoBitmap; /** * @private * 按钮上的文本。 */ protected _text: Text; /** * @private * 按钮文本标签的颜色值。 */ protected _labelColors: any[]; /** * @private * 按钮文本标签描边的颜色值。 */ protected _strokeColors: any[]; /** * @private * 按钮的状态值。 */ protected _state: number; /** * @private * 表示按钮的选中状态。 */ protected _selected: boolean; /** * @private * 按钮的皮肤资源。 */ protected _skin: string; /** * @private * 指定此显示对象是否自动计算并改变大小等属性。 */ protected _autoSize: boolean; /** * @private * 按钮的状态数。 */ protected _stateNum: number; /** * @private * 源数据。 */ protected _sources: any[]; /** * @private * 按钮的点击事件函数。 */ protected _clickHandler: Handler; /** * @private */ protected _stateChanged: boolean; /** * 创建一个新的 <code>Button</code> 类实例。 * @param skin 皮肤资源地址。 * @param label 按钮的文本内容。 */ constructor(skin?: string, label?: string); /** * @inheritDoc * @override */ destroy(destroyChild?: boolean): void; /** * @inheritDoc * @override */ protected createChildren(): void; /**@private */ protected createText(): void; /**@inheritDoc * @override */ protected initialize(): void; /** * 对象的 <code>Event.MOUSE_OVER、Event.MOUSE_OUT、Event.MOUSE_DOWN、Event.MOUSE_UP、Event.CLICK</code> 事件侦听处理函数。 * @param e Event 对象。 */ protected onMouse(e: Event): void; /** * <p>对象的皮肤资源地址。</p> * 支持单态,两态和三态,用 <code>stateNum</code> 属性设置 * <p>对象的皮肤地址,以字符串表示。</p> * @see #stateNum */ get skin(): string; set skin(value: string); protected _skinLoaded(): void; /** * <p>指定对象的状态值,以数字表示。</p> * <p>默认值为3。此值决定皮肤资源图片的切割方式。</p> * <p><b>取值:</b> * <li>1:单态。图片不做切割,按钮的皮肤状态只有一种。</li> * <li>2:两态。图片将以竖直方向被等比切割为2部分,从上向下,依次为 * 弹起状态皮肤、 * 按下和经过及选中状态皮肤。</li> * <li>3:三态。图片将以竖直方向被等比切割为3部分,从上向下,依次为 * 弹起状态皮肤、 * 经过状态皮肤、 * 按下和选中状态皮肤</li> * </p> */ get stateNum(): number; set stateNum(value: number); /** * @private * 对象的资源切片发生改变。 */ protected changeClips(): void; /** * @inheritDoc * @override */ protected measureWidth(): number; /** * @inheritDoc * @override */ protected measureHeight(): number; /** * 按钮的文本内容。 */ get label(): string; set label(value: string); /** * 表示按钮的选中状态。 * <p>如果值为true,表示该对象处于选中状态。否则该对象处于未选中状态。</p> * @implements */ get selected(): boolean; set selected(value: boolean); /** * 对象的状态值。 * @see #stateMap */ protected get state(): number; protected set state(value: number); /** * @private * 改变对象的状态。 */ protected changeState(): void; /** * 表示按钮各个状态下的文本颜色。 * <p><b>格式:</b> "upColor,overColor,downColor,disableColor"。</p> */ get labelColors(): string; set labelColors(value: string); /** * 表示按钮各个状态下的描边颜色。 * <p><b>格式:</b> "upColor,overColor,downColor,disableColor"。</p> */ get strokeColors(): string; set strokeColors(value: string); /** * 表示按钮文本标签的边距。 * <p><b>格式:</b>"上边距,右边距,下边距,左边距"。</p> */ get labelPadding(): string; set labelPadding(value: string); /** * 表示按钮文本标签的字体大小。 * @see laya.display.Text.fontSize() */ get labelSize(): number; set labelSize(value: number); /** * <p>描边宽度(以像素为单位)。</p> * 默认值0,表示不描边。 * @see laya.display.Text.stroke() */ get labelStroke(): number; set labelStroke(value: number); /** * <p>描边颜色,以字符串表示。</p> * 默认值为 "#000000"(黑色); * @see laya.display.Text.strokeColor() */ get labelStrokeColor(): string; set labelStrokeColor(value: string); /** * 表示按钮文本标签是否为粗体字。 * @see laya.display.Text.bold() */ get labelBold(): boolean; set labelBold(value: boolean); /** * 表示按钮文本标签的字体名称,以字符串形式表示。 * @see laya.display.Text.font() */ get labelFont(): string; set labelFont(value: string); /**标签对齐模式,默认为居中对齐。*/ get labelAlign(): string; set labelAlign(value: string); /** * 对象的点击事件处理器函数(无默认参数)。 * @implements */ get clickHandler(): Handler; set clickHandler(value: Handler); /** * 按钮文本标签 <code>Text</code> 控件。 */ get text(): Text; /** * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p> * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 * <ul><li>例如:"4,4,4,4,1"</li></ul></p> * @see laya.ui.AutoBitmap.sizeGrid */ get sizeGrid(): string; set sizeGrid(value: string); /** * @inheritDoc * @override */ set width(value: number); /** * @inheritDoc * @override */ get width(): number; /** * @inheritDoc * @override */ set height(value: number); /** * @inheritDoc * @override */ get height(): number; /** * @inheritDoc * @override */ set dataSource(value: any); /** * @inheritDoc * @override */ get dataSource(): any; /**图标x,y偏移,格式:100,100*/ get iconOffset(): string; set iconOffset(value: string); /**@private */ protected _setStateChanged(): void; }