- 浏览: 137023 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
Ken艹小哲:
太赞了 哥们 加扣
猜数字问题的最少步数算法. -
chenyuan122912:
...
解决AS3 Socket编程中最令人头疼的问题 -
hyx0914:
有源代码打包下载的吗?
Flex地图分块加载的实现 -
tianhai110:
非常有价值的 测试总结
时间效率,Timer和EnterFrame在FP 10.1之后测试和建议 -
763675117:
你好,fengxiangpiao,看了你的文档,我的需求和你差 ...
解决MovieClip打印问题 转
转自:http://hi.baidu.com/half_cup_coffee/blog/item/6447e181e4dd05d3bd3e1ebf.html/cmtid/abb7f5f07ee3eccd7831aab9 在自定义一个itemRenderer来显示下拉框中的数据时,遇到一个问题。
定义的itemRenderer是个用来显示颜色块的和相应文字说明的。在下拉框的列表中显示很正常,有颜色也有相应的文字说明,如下图:
但是在选中某条数据,下拉框收起来后,在ComboBox的TextInput里只显示了当前的标签,并没有显示对应的颜色。
因为下拉框默认显示选中项是用的TextInput组件,因此并不能像列表里的itemRenderer一样能显示前面的颜色块,不过我们可以继承一个 ComboBox,然后重载createChildren()和updateDisplayList()方法,去掉默认的TextInput,改用实例化一个itemRenderer来显示选中的数据,这样就能保证下拉框里和已经选中的以相同的方式显示。
下面是一个从ComboBox继承的组件ComboBoxEx(实现方式参考了国外某网站上的代码)
package bss.flex.components
{
import mx.binding.utils.BindingUtils;
import mx.controls.ComboBox;
import mx.core.UIComponent;
public class ComboBoxEx extends ComboBox
{
public function ComboBoxEx()
{
super();
}
protected var textInputReplacement:UIComponent;
override protected function createChildren():void {
super.createChildren();
if ( !textInputReplacement ) {
if ( itemRenderer != null ) {
//删除缺少的TextInput组件
removeChild(textInput);
//用itemRenderer创建一个实例并添加
textInputReplacement = itemRenderer.newInstance();
//绑定属性
BindingUtils.bindProperty(textInputReplacement, "data", this, "selectedItem", true);
addChild(textInputReplacement);
}
}
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
if ( textInputReplacement ) {
textInputReplacement.width = unscaledWidth;
textInputReplacement.height = unscaledHeight;
}
}
}
}
定义一个用来显示颜色说明的itemRenderer-ColorRenderer.mxml,很简单一个HBox里放个Canvas和Label,Canvas用来显示颜色,Label用来显示标签
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
verticalAlign="middle" paddingLeft="5"
width="100%" height="25">
<mx:Canvas width="16" height="16"
borderStyle="solid" cornerRadius="2"
backgroundColor="{data.color}"/>
<mx:Label text="{data.label}"/>
</mx:HBox>
准备测试数据,就直接在下拉框的ComboBox的dataProvider里写死:
<components:ComboBoxEx
itemRenderer="bss.flex.components.itemrenderer.ColorRenderer">
<components:dataProvider>
<mx:Object color="0x00EA00" label="新建"/>
<mx:Object color="0xFF9D4C" label="已退单"/>
<mx:Object color="0xFF80FF" label="未通过审核"/>
<mx:Object color="0xFFFF80" label="请求撤销"/>
<mx:Object color="0x808080" label="作废"/>
</components:dataProvider>
</components:ComboBoxEx>
下面这个是最终的效果图,左边的是普通的ComboBox,右边是ComboBoxEx:
发表评论
-
Flex 自动获取焦点 监听全局键盘事件
2010-11-27 16:51 981这是《Flex第一步》里面一个朋友问我的问题,特此拿出分享一下 ... -
在接口中定义属性引起的An internal Builder Error错误
2010-11-12 21:24 753今天调试程序时,出现An internal Builder ... -
Label鼠标移上显示手形
2010-11-10 21:03 848软件编程牛人网 要想鼠标在Label上显示为手型, ... -
解决MovieClip打印问题 转
2010-11-08 17:57 1649困扰我多天的MovieClip打印问题终于解决了,这就实现了P ... -
flex 3 从页面url中取参数取值的完美解决方案
2010-11-04 16:04 603在家上网赚钱更容易 1:当用http://xxxxx/xx ... -
汉字转为16进制的unicode
2010-11-04 12:28 1292在家上网赚钱更容易 Flex引入外部字体时使用unicode ... -
Flex内存监测及优化技巧
2010-11-04 12:27 829在家上网赚钱更容易 ... -
FlashPlayer垃圾回收机制
2010-11-04 12:26 863在家上网赚钱更容易 ... -
Flex 数据易犯错误: 常见误用和错误
2010-11-03 21:51 684在家上网赚钱更容易 忘记解除和承担内查泄漏风险 ... -
Flex地图分块加载的实现
2010-11-03 21:47 1243在家上网赚钱更容易 首先我们确定几个关键点:窗口大小 ... -
Flex ComboBox中的Tree itemRender ClassFactory 实现
2010-11-01 20:36 1016想要实现ComboBox下来出来一颗树,用itemR ... -
修改ScrollBar的ScrollTrack高度
2010-11-01 18:18 1026<?xml version="1.0" ... -
去掉ScrollBar的两个箭头
2010-10-29 18:33 790在样式中加入下面两行upArrowSkin: ClassRef ... -
VerifyError: Error #1033: Cpool 项 246 类型错误
2010-10-28 12:24 2544在家上网赚钱更容易 最近,由于项目需要,安装了flash b ... -
用jsfl 扩展你的 flash
2010-10-27 15:19 780为什么要学习jsfl? 作为一个有些经验的FLASH开发 ... -
Flash编辑下使用的语言--JSFL
2010-10-27 15:19 1213JSFL概述 JSFL是在Flash编辑环境下使用 ... -
JSFL与Flash的完美结合
2010-10-27 15:18 1196作为一个有些经验的Flas ... -
flash as3 GUID UUID 生成类
2010-10-26 10:24 846package { import flash.dis ... -
flex里创建uuid的方法
2010-10-26 10:23 885import mx.utils.UIDUtil;var ... -
应用DataGrid项双击事件
2010-10-26 09:15 950软件编程牛人 默认Flex不使用双击事件 如需使用可 ...
相关推荐
为了将CheckBox与ComboBox结合,我们需要自定义ComboBox的itemRenderer,这是一个负责渲染ComboBox列表项的组件。itemRenderer允许我们定制每个列表项的显示方式,包括添加复选框。 **创建自定义itemRenderer:** 1...
创建`combobox`的`itemRenderer`需要确保`ComboBox`的`data`属性与数据项绑定,并且根据数据模型的需要,动态填充`ComboBox`的下拉选项。`headerRenderer`中一般不使用`combobox`,因为列头通常用于筛选或排序,而...
在DataGrid的列定义中,我们将ComboBox作为ItemRenderer指定给特定列,这样当用户查看或编辑该列时,会看到ComboBox而非普通的文本字段。 更进一步,我们还要在ComboBox中嵌套一个DataGrid。这种设计适用于需要在...
<mx:List dataProvider="{data}" itemRenderer="com.mycompany.renderers.CheckboxItemRenderer" /> ``` 其中,`CheckboxItemRenderer`是我们自定义的渲染器,它负责在每个数据项中显示Checkbox。 2. **...
这种需求可以借助于"TreeComboBox"来实现,它将传统的ComboBox与Tree控件相结合,提供了一种在下拉菜单中展示层次结构数据的方式。今天我们将深入探讨如何在Flex中实现"下拉框为Tree的ComboBox",并结合提供的...
- 内渲染器是一种特殊类型的组件,用于定义列表控件(如List或ComboBox)中每一项的外观和行为。 - 它可以是一个简单的文本标签,也可以包含复杂的布局和交互元素,如图像、按钮、滑块等。 - 内渲染器可以根据...
2. **自定义ItemRenderer**:由于默认的ItemRenderer可能无法满足需求,因此需要创建自定义的Combobox ItemRenderer。在这个自定义渲染器中,你需要确保在列拖动后,Combobox的数据能够根据新的列索引进行更新。 3....
- 通过阅读源代码,我们可以看到如何将Checkbox与ComboBox集成,以及如何处理相关事件。 5. **实际应用**: - 这种组合在某些场景下特别有用,比如用户需要从大量选项中多选时,可以提高用户体验,因为他们可以...
#### DataGrid与ComboBox DataGrid 是一种用于显示表格数据的Flex组件,而ComboBox则是用于让用户选择列表中的一个选项的下拉列表框。在这个教程中,我们关注的是如何将ComboBox动态地添加到DataGrid的每一行中。 ...
我们可以使用`Tree`组件的特性,如`mx.controls.Tree`,来处理树形数据,然后将其与ComboBox的下拉列表结合起来。 接下来,添加复选框到每个树节点,我们可以创建自定义的List或DataGridItemRenderer,这个渲染器会...
在ActionScript和Flex开发中,`ItemRenderer`是一种关键组件,用于自定义MX或Spark数据控件(如List、ComboBox等)中项呈现的方式。它允许开发者为数据集中的每一项提供独特的视觉表现,增强用户体验并提升应用的...
在ItemRenderer中,你需要将数据对象与Checkbox的属性进行绑定,比如label和selected状态。这通常通过data属性完成,data属性会传递ComboBox的dataProvider中的每一项。 ```actionscript override public function...
接下来,我们将新创建的ItemRenderer类设置为ComboBox或DropDownList的itemRenderer属性。这样,每项列表项都会使用这个自定义的渲染器来展示。 在实现过程中,我们还需要处理以下几点: 1. 数据绑定:确保每个...
在`itemRenderer`中,我们绑定`ComboBox`的数据源到当前单元格的数据项,这样用户就可以从下拉选项中选择值。同时,我们还需要监听`ComboBox`的`change`事件,当选择变化时更新数据模型,以保持数据的一致性。 接...
4. **数据绑定**:确保Tree的数据源与ComboBox的下拉列表项相匹配。通常,数据源是一个ArrayCollection或XMLListCollection,其中每个元素都包含了树节点的文本和选择状态等信息。 5. **同步选中状态**:当用户在...
`itemRenderer` 与 `itemEditor` 不同,它始终显示,不仅在编辑状态下。`itemRenderer` 用于自定义单元格的外观和行为。例如,如果你想要一个静态显示的 `Label`,即使在非编辑状态下也能显示数据,可以设置 `...
为了在`DataGrid` 的某一列实现下拉列表,我们需要创建一个新的组件类,继承自`mx.controls.ComboBox` 或 `spark.components.DropDownList`,然后根据需求进行定制。这可能包括调整样式、添加事件监听器、处理特定的...
例如,Combobox在使用ItemRenderer时无法直接绑定数据值,这需要使用ItemEditor来实现。不过,当需要在运行时获得已经渲染的组件实例时,常规方法可能无法直接获取到这个对象。通过不懈的努力和搜索,开发者找到了...
`Main.mxml`文件是Flex应用程序的入口点,其中包含了一个水平列表`HorizontalList`,以及一个组合框`ComboBox`。列表中的每个项目都绑定了一个自定义的`ToolTip`,这个`ToolTip`是由`CustomToolTip.mxml`提供的。...
2. **自定义下拉列表**:通过覆盖dropDown属性,我们可以创建一个自定义的List组件,其中的itemRenderer使用我们之前编写的HgCheckBox.as。这样,每个列表项都会显示一个复选框。 3. **处理多选逻辑**:当用户在...