Flex的Combobox组件使用技巧

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方法在关闭下拉列表时触发
 
转自:http://blog.sina.com.cn/s/blog_83296e5c01011sct.html
posted @ 2014-02-17 09:52  小小有  阅读(2634)  评论(0编辑  收藏  举报