全部博文(118)
分类:
2010-07-29 22:34:00
ComboBox控件使用
指南
ComboBox组件可以从一个下拉表中选择某一项,而当所选项改变时它会发布change事件。通常使用Array和Arraycollection来作为ComboBox的数据源,如果Array中的数据都是String类型那么这些字符串会直接显示在下拉列表的各项中。
List控件,主要区别:list是把数据元素直接显示出来,而comboBox则是弹出式的下拉菜单。
Combobox—>combobase—>UIcomponent—>FlexSprite—>Sprite —>DisplayObjectContainer—>InteractiveObject—>DisplayObject—>EventDispatcher—>object
UIComponent—>ComboBase
UIComponent—>ComboBase—>colorPicker
UIComponent—>ComboBase—>comboBox
UIComponent—>ComboBase—>DateField
参考文献:Adobe® Flex® 4.1 语言参考
名称 |
分类 |
说明 |
dataprovider |
属性 |
数据源 |
labelField |
属性 |
数据源中作标签显示的名称 |
Data(待研究)(flex3) |
属性 |
当您在项呈示器或项目编辑器重是偶那个某个组件时刻借助data属性向该组件传递值 |
Dropdownwidth(flex3) |
属性 |
下拉列表的宽度(以像素为单位) |
Rowcount(flex3) |
属性 |
列表中可见行数的最大数目如果dataprovider中的项目少于此数目则combobox仅显示dataprovider中的包含的项目 |
Prompt(flex3) |
属性 |
Combobox控件的提示(详见3.5) |
Autolayout(flex4) |
属性 |
如果为true则在更改子项的位置或大小时完成度量好布局(详见3.6) |
TypicalItem(flex4)待解 |
属性 |
当需要固定的行或大小时布局使用TypicalItem的首选大小,但不设置某个特定的rowHeight或columnwidth值 |
功能: 当用户点击下拉列表时会出现dataprovider所提供的列表值。
主要代码:
演示效果:bin-debug\lizi.html
详细代码见“lizi.mxml”
如果数据时对象类型,那么在默认情况下ComboBox组件会将对象中label属性的值显示在下拉列表中如果没有label的属性,你们用户可以通过设置Combobox组件的labelField属性来决定下拉列表的显示字段。
法1:label
[Bindable]
public var arr1:ArrayCollection=new ArrayCollection([{label:"男",data:"a"},
{label:"女", data:"b"}]);]]>
法2:labelfield
[Bindable]
public var arr1:ArrayCollection=new ArrayCollection([{ingredient:"男",data:"a"}, {ingredient:"女", data:"b"}]);]]>
演示效果如下:
代码详见:combobox.mxml
Combobox控件列表中可见行数的最大数目。如果dataprovider中的项目少于此数目,则combobox仅显示dataprovider中包含的项目,默认值为5。而在flex4中没有(暂时没找到),但是flex4中它默认可见行数为6
代码如下:
flex4中: [Bindable]
public var arr1:ArrayCollection=new ArrayCollection([{label:"黄瓜", data:"1"},
{label:"苹果", data:"2"},
{label:"橘子", data:"3"},
{label:"橙子", data:"4"},
{label:"梨" , data:"5"},
{label:"西瓜" ,data:"6"},
{label:"葡萄", data:"7"}]);
]]>
演示效果:
代码详见“lizi.mxml”
Flex3中:
dataProvider="{arr}"
itemRenderer="mx.controls.Label"
width="200" />
通过rowcount属性我们设置它可见行的行数为3
效果演示如下:
代码详见:rowcount.mxml
功能:设定下拉列表的宽度(以像素为单位)
关键代码如下:
dataProvider="{arr}"
itemRenderer="mx.controls.Label"
width="112" x="257"/>
演示效果如下:
当dropdownwidth=100
当dropdownwidth=50
代码详见“dropdownwidth.mxml”
功能:
在combobox控件的textInput部分中显示的String,他通常是一个String值。如果没有提示则combobox控件会将selectedIndex设置为0并显示dataprovider中的第一个项目
关键代码:
dataProvider="{arr}" prompt="请选择"
itemRenderer="mx.controls.Label"
width="112" x="257"/>
演示效果:
代码详见“prompt.mxml”
功能:
如果为true则在更改子项的位置或大小时完成度量和布局。如果为false,则仅当在容器中添加或伤处子项时才能执行度量和布局。默认为true
代码如下:
import mx.collections.ArrayCollection;
[Bindable]
public var arr1:ArrayCollection=new ArrayCollection([{label:"黄瓜", data:"1"},
{label:"苹果", data:"2"},
{label:"橘子", data:"3"},
{label:"橙子", data:"4"},
{label:"梨" , data:"5"},
{label:"西瓜" ,data:"6"},
{label:"葡萄", data:"7"}]);
]]>
演示效果如下:
Autolayout=”false”
Autolayout=”true”
详细代码见“autolayout.mxml”
声明:如果有人需要详细代码请留言联系本人!!