原文地址:http://joe-feng.iteye.com/blog/1402008
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方法在关闭下拉列表时触发