Flex的Combobox组件

本文介绍如何通过设置属性来定制 Flex 中的 Combobox 组件,包括显示默认提示、处理过长文本、允许显示多行文字、添加图标、创建联动下拉列表等,并讲解了 openEasingFunction、rowCount 等特性的使用。
摘要由CSDN通过智能技术生成

1、显示提示
设置Prompt属性可以为Combobox添加一个默认提示。如果没有设置selectedIndex,默认selectedIndex=-1,就显示Prompt的内容。
Flex3如果不设置Prompt,默认选择第一项。Flex4如果不设置Prompt,那么默认是空的。

2、处理文字过长
Flex4中的Combobox文字过长时,会显示滚动条。我们讨论Flex3如何处理文字过长的问题。
设置其itemRenderer为Label即可显示出省略号和ToolTip。几乎所有含有标签的组件遇到文字过长的问题都可以用该方法解决。
<mx:ComboBox itemRenderer="mx.controls.Label"/>
另外还可以设置下拉列表的宽度:
<mx:ComboBox dropdownWidth="300" />

 

3、允许下拉列表显示多行文字
设置itemRenderer为mx.controls.Text即可。有的文章说还需要在open事件中获得Combobox.dropDown获取下 拉列表的引用。然后设置下拉列表的variableRowHeight为true。实际实现只需设置itemRenderer即可。

 

protected function cb_openHandler(event:DropdownEvent):void
{
  cb.dropdown.variableRowHeight = true;
}
<mx:ComboBox id="cb" dataProvider="{ac}" width="200"
    open="cb_openHandler(event)" itemRenderer="mx.controls.Text"/>

 

4、为下拉列表添加图标

[Embed("assets/1.png")]
private var pngClass:Class;
private function cb_openHandler(event:DropdownEvent):void
{
    cb.dropdown.variableRowHeight = true;
    cb.dropdown.iconFunction = iconFunc;
}           
private function iconFunc(item:Object):Class{
    return pngClass;
}
<mx:ComboBox id="cb" dataProvider="{ac}" labelField="value" open="cb_openHandler(event)" />

 

5、创建联动的Combobox

 

[Bindable]
private var myXML:XML = 
<root>
<parent name="大类1">
<child name="大类1-小类1"/>
<child name="大类1-小类2"/>
<child name="大类1-小类3"/>
</parent>
<parent name="大类2">
<child name="大类2-小类1"/>
<child name="大类2-小类2"/>
<child name="大类2-小类3"/>
</parent>
</root>
<mx:ComboBox id="cb1" dataProvider="{myXML.parent}" labelField="@name"/>
<mx:ComboBox id="cb2" dataProvider="{cb1.selectedItem.child}" labelField="@name"/>

 

 

6、其他特性
  openEasingFunction和closeEasingFunction用于设置弹出和关闭下拉列表时的动画效果,这对于其他含有下拉列表的组件也适用,比如ColorPicker。
  openDuration和closeDuration用于设置弹出和关闭下拉列表的动画持续时间。
  editable用于设置是否可以编辑,默认是false
  rowCount用于设置下拉列表显示的最大行数,如果实际数据超过最大行数,则显示滚动条
  open方法在打开下拉列表时触发,close方法在关闭下拉列表时触发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值