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方法在关闭下拉列表时触发