UNPKG

laya-coreui-es

Version:

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

344 lines (343 loc) 11.1 kB
import { UIComponent } from "./UIComponent"; import { Button } from "./Button"; import { List } from "./List"; import { VScrollBar } from "./VScrollBar"; import { Event } from "../events/Event"; import { Handler } from "../utils/Handler"; /** * 当用户更改 <code>ComboBox</code> 组件中的选定内容时调度。 * @eventType laya.events.Event * selectedIndex属性变化时调度。 */ /** * <code>ComboBox</code> 组件包含一个下拉列表,用户可以从该列表中选择单个值。 * * @example <caption>以下示例代码,创建了一个 <code>ComboBox</code> 实例。</caption> * package * { * import laya.ui.ComboBox; * import laya.utils.Handler; * public class ComboBox_Example * { * public function ComboBox_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 comboBox:ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 * comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 * comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 * comboBox.selectHandler = new Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。 * Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 * } * private function onSelect(index:int):void * { * trace("当前选中的项对象索引: ",index); * } * } * } * @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 comboBox = new laya.ui.ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 * comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 * comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 * comboBox.selectHandler = new laya.utils.Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。 * Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 * } * function onSelect(index) * { * console.log("当前选中的项对象索引: ",index); * } * @example * import ComboBox = laya.ui.ComboBox; * import Handler = laya.utils.Handler; * class ComboBox_Example { * constructor() { * Laya.init(640, 800);//设置游戏画布宽高。 * Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 * Laya.loader.load("resource/ui/button.png", Handler.create(this, this.onLoadComplete));//加载资源。 * } * private onLoadComplete(): void { * console.log("资源加载完成!"); * var comboBox: ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 * comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 * comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 * comboBox.selectHandler = new Handler(this, this.onSelect);//设置 comboBox 选择项改变时执行的处理器。 * Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 * } * private onSelect(index: number): void { * console.log("当前选中的项对象索引: ", index); * } * } * */ export declare class ComboBox extends UIComponent { /**@private */ protected _visibleNum: number; /** * @private */ protected _button: Button; /** * @private */ protected _list: List; /** * @private */ protected _isOpen: boolean; /** * @private */ protected _itemColors: any[]; /** * @private */ protected _itemSize: number; /** * @private */ protected _labels: any[]; /** * @private */ protected _selectedIndex: number; /** * @private */ protected _selectHandler: Handler; /** * @private */ protected _itemHeight: number; /** * @private */ protected _listHeight: number; /** * @private */ protected _listChanged: boolean; /** * @private */ protected _itemChanged: boolean; /** * @private */ protected _scrollBarSkin: string; /** * @private */ protected _isCustomList: boolean; /** * 渲染项,用来显示下拉列表展示对象 */ itemRender: any; /** * 创建一个新的 <code>ComboBox</code> 组件实例。 * @param skin 皮肤资源地址。 * @param labels 下拉列表的标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。 */ constructor(skin?: string, labels?: string); /** * @inheritDoc * @override */ destroy(destroyChild?: boolean): void; /** * @inheritDoc * @override */ protected createChildren(): void; private _createList; private _setListEvent; /** * @private */ private onListDown; private onScrollBarDown; private onButtonMouseDown; /** * @copy laya.ui.Button#skin */ get skin(): string; set skin(value: string); /** * @inheritDoc * @override */ protected measureWidth(): number; /** * @inheritDoc * @override */ protected measureHeight(): number; /** * @private */ protected changeList(): void; /** * @private * 下拉列表的鼠标事件响应函数。 */ protected onlistItemMouse(e: Event, index: number): void; /** * @private */ private switchTo; /** * 更改下拉列表的打开状态。 */ protected changeOpen(): void; /** * @inheritDoc * @override */ set width(value: number); /** * @inheritDoc * @override */ get width(): number; /** * @inheritDoc * @override */ set height(value: number); /** * @inheritDoc * @override */ get height(): number; /** * 标签集合字符串。 */ get labels(): string; set labels(value: string); /** * 更改下拉列表。 */ protected changeItem(): void; /** * 表示选择的下拉列表项的索引。 */ get selectedIndex(): number; set selectedIndex(value: number); private changeSelected; /** * 改变下拉列表的选择项时执行的处理器(默认返回参数index:int)。 */ get selectHandler(): Handler; set selectHandler(value: Handler); /** * 表示选择的下拉列表项的的标签。 */ get selectedLabel(): string; set selectedLabel(value: string); /** * 获取或设置没有滚动条的下拉列表中可显示的最大行数。 */ get visibleNum(): number; set visibleNum(value: number); /** * 下拉列表项颜色。 * <p><b>格式:</b>"悬停或被选中时背景颜色,悬停或被选中时标签颜色,标签颜色,边框颜色,背景颜色"</p> */ get itemColors(): string; set itemColors(value: string); /** * 下拉列表项标签的字体大小。 */ get itemSize(): number; set itemSize(value: number); /** * 表示下拉列表的打开状态。 */ get isOpen(): boolean; set isOpen(value: boolean); private _onStageMouseWheel; /** * 关闭下拉列表。 */ protected removeList(e: Event): void; /** * 滚动条皮肤。 */ get scrollBarSkin(): string; set scrollBarSkin(value: string); /** * <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); /** * 获取对 <code>ComboBox</code> 组件所包含的 <code>VScrollBar</code> 滚动条组件的引用。 */ get scrollBar(): VScrollBar; /** * 获取对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的引用。 */ get button(): Button; /** * 获取对 <code>ComboBox</code> 组件所包含的 <code>List</code> 列表组件的引用。 */ get list(): List; set list(value: List); /** * @inheritDoc * @override */ set dataSource(value: any); /** * @inheritDoc * @override */ get dataSource(): any; /** * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本标签颜色。 * <p><b>格式:</b>upColor,overColor,downColor,disableColor</p> */ get labelColors(): string; set labelColors(value: string); /** * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本边距。 * <p><b>格式:</b>上边距,右边距,下边距,左边距</p> */ get labelPadding(): string; set labelPadding(value: string); /** * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的标签字体大小。 */ get labelSize(): number; set labelSize(value: number); /** * 表示按钮文本标签是否为粗体字。 * @see laya.display.Text#bold */ get labelBold(): boolean; set labelBold(value: boolean); /** * 表示按钮文本标签的字体名称,以字符串形式表示。 * @see laya.display.Text#font */ get labelFont(): string; set labelFont(value: string); /** * 表示按钮的状态值。 * @see laya.ui.Button#stateNum */ get stateNum(): number; set stateNum(value: number); }