laya-coreui-es
Version:
laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改
344 lines (343 loc) • 11.1 kB
TypeScript
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);
}