- 浏览: 47460 次
- 性别:
- 来自: 杭州
-
最新评论
v4_05 Creating item renderers and item editors 创建项目渲染器和项目编辑器
ex4-05
这部分主要讲
把有关项目渲染器的知识带到DataGrid控件中,并学习如何创建项目渲染器和项目编辑器
及如何创建渲染器和编辑器作为下拉式,内联式和组件形式的实现
如何使用渲染器里面的Spark组件
如何在DataGrid控件里的一个项目上处理一个点击事件
三种方式来实现项目渲染器和项目编辑器
下拉式 内联式 组件形式
下拉式
为实现一个下拉式的项目渲染器,需要直接在一个DataGridColumn实例中的iterRenderer或itemEditor属性中引用一个组件类文件
可以使用editorDataField属性,将列中 的数据绑定到下拉式组件中的不同属性上
如果要为项目渲染器使用项目编辑器,设置rendererIsEditor属性为true
![](/upload/picture/pic/82247/1ed19f54-8292-3414-bc43-c77bd2eeb9e9.gif)
1.首先给DataGrid加上editable=true属性
Employee Name,Hire Date的editable="false",在Vacation中加上项目编辑器
<mx:DataGrid dataProvider="{employeeList}" width="300" editable="true"> <mx:columns> <mx:DataGridColumn labelFunction="employeeName" headerText="Employee Name" width="112" editable="false"/> <mx:DataGridColumn dataField="hireDate" headerText="Hire Date" labelFunction="dateFormat" editable="false"/> <mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" itemEditor="mx.controls.NumericStepper" editorDataField="value"/> </mx:columns> </mx:DataGrid>
![](/upload/picture/pic/82251/935c674a-0d76-399f-b3e7-7095d07162da.gif)
2.让NumericStepper总是显示
这里使用itemRenderer,并且rendererIsEditor="true"
<mx:DataGrid dataProvider="{employeeList}" width="300" editable="true"> <mx:columns> <mx:DataGridColumn labelFunction="employeeName" headerText="Employee Name" width="112" editable="false"/> <mx:DataGridColumn dataField="hireDate" headerText="Hire Date" labelFunction="dateFormat" editable="false"/> <mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" itemRenderer="mx.controls.NumericStepper" rendererIsEditor="true" editorDataField="value"/> </mx:columns> </mx:DataGrid>
![](/upload/picture/pic/82245/55dad328-6057-3ac4-b78b-770baea1717c.gif)
3.上面的例子中下拉控件数字大小是无法规定上限的
因为属性无法传入到<!--WizRtf2Html Charset=0 -->NumericStepper 中去
可以在itemRenderer使用Component来解决设置NumericStepper 属性的问题
<mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" rendererIsEditor="true"> <mx:itemRenderer> <fx:Component> <mx:NumericStepper minimum="2" maximum="26"/> </fx:Component> </mx:itemRenderer> </mx:DataGridColumn>
4.<!--WizRtf2Html Charset=0 -->Employee Name 是创建一个<!--WizRtf2Html Charset=0 -->itemRenderer
EmployeeItemRenderer,注意创建的时间,选择MXML项呈示器
<?xml version="1.0" encoding="utf-8"?> <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" focusEnabled="true"> <s:BorderContainer backgroundColor="#cccccc"> <s:layout> <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:Label text="{data.firstName} {data.lastName}"/> <mx:Image source="images/{data.id}.jpg"/> </s:BorderContainer> </s:MXDataGridItemRenderer>
然后在主应用程序中引用
<mx:columns> <mx:DataGridColumn itemRenderer="components.EmployeeItemRenderer" headerText="Employee Name" width="112" editable="false"/> <mx:DataGridColumn dataField="hireDate" headerText="Hire Date" labelFunction="dateFormat" editable="false"/> <mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" rendererIsEditor="true"> <mx:itemRenderer> <fx:Component> <mx:NumericStepper minimum="2" maximum="26"/> </fx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns>
![](/upload/picture/pic/82243/021394c2-b18d-3dcc-9f69-633ee6885109.gif)
5.vacation的高度也变这么高了
怎么处理呢?在NumericStepper 加一层MXDataGridItemRenderer,通过该类,可以将 Spark 项呈示器体系结构与 MX DataGrid 控件一起使用。
<mx:itemRenderer> <fx:Component> <s:MXDataGridItemRenderer> <mx:NumericStepper minimum="2" maximum="26"/> </s:MXDataGridItemRenderer> </fx:Component> </mx:itemRenderer>
![](/upload/picture/pic/82241/2be73e9f-73ed-328b-8def-e8b76789fda3.gif)
6.但是上面的vacation的值出问题了,都是最小值2了
因为使用MXDataGridItemRenderer之后,
它就是一个独立的components,所以我们要为它提供数据
注意,这里把NumericStepper 使用了Spark组件
<mx:itemRenderer> <fx:Component> <s:MXDataGridItemRenderer> <s:NumericStepper minimum="2" maximum="26" value="{data.vacationEligibility}"/> </s:MXDataGridItemRenderer> </fx:Component> </mx:itemRenderer>
![](/upload/picture/pic/82239/6f1cacd4-6722-3fe2-ad5d-f4a88c4cd6a8.gif)
7.点击事件
在DataGrid 写上itemClick事件,并处理它
<mx:DataGrid dataProvider="{employeeList}" width="300" editable="true" itemClick="datagrid1_itemClickHandler(event)">
![](/upload/picture/pic/82249/5dbb9d4d-ef91-3365-8e8e-9464c1af1bfb.gif)
8.最后说下HGroup
HGroup 容器是使用 HorizontalLayout 类的 Group 容器的一个实例
就是一个不用写layout的Group
发表评论
-
v5_11 创建AIR应用
2011-03-05 21:45 889v5_11 Creating an Adobe AIR app ... -
v5_07 了解皮肤的组成部分
2011-03-05 21:44 1020v5_07 Implementing skin parts 了 ... -
v5_06 绘制MXML图形
2011-03-05 21:44 799v5_06 Drawing with MXMLgraphics ... -
v5_05 了解皮肤
2011-03-05 21:44 876v5_05 Introducing skinning 了解皮肤 ... -
v5_04 使用高级CSS选择器
2011-03-05 21:44 1120v5_04 Introducing advanced CSS ... -
v5_03 在CSS文件中定义样式
2011-02-27 20:31 1096v5_03 Defining styles in CSS ... -
v5_02 使用文本布局框架
2011-02-27 20:31 693v5_02 Utilizing the Text Layout ... -
v5_01 使用文本控件
2011-02-27 20:31 948v5_01 Introducing the text cont ... -
v4_11 为视图状态应用变换
2011-02-27 20:30 962v4_11 Animating states with tra ... -
v4_10 使用特效来实现组件动画
2011-02-27 20:30 948v4_10 Animating components with ... -
v4_09 使用容器控制组件布局
2011-02-27 20:30 853v4_09 Using constraints to cont ... -
v4_07 创建应用程序状态
2011-02-27 20:30 782v4_07 Creating pages with Flex ... -
v4_06 了解导航容器
2011-02-27 20:29 706v4_06 Understanding navigator c ... -
v4_04 使用DataGrid控件
2011-02-27 12:24 728v4_04 Creating and formatting ... -
v4_03 在基于列表的组件中实施一个Spa
2011-02-27 12:24 789v4_03 Implementing a Spark item ... -
v4_02 创建自定义项目渲染器
2011-02-27 12:24 834v4_02 Creating a custom item re ... -
v4_01 在项目渲染器中显示数据
2011-02-26 15:54 827v4_01 Representing data in defa ... -
v3_07 使用双向绑定
2011-02-26 15:53 872v3_07 Implementing two-way bind ... -
v3_06 验证表单数据
2011-02-26 15:53 803v3_06 validating form data 验证表单 ... -
v4_08 应用布局
2011-02-26 15:49 730v4_08 laying out an application ...
相关推荐
- **实时渲染界面**:CATIA的实时渲染界面包括多个工具栏,如材料库工具栏、场景编辑器工具栏、动画工具栏等,提供了丰富的功能按钮,便于用户快速访问和调整渲染设置。 - **快速参考与定制**:软件还提供了快速参考...
10. **Pro版本特性**:相比免费版,Unity Pro通常提供更高的渲染质量、更大的项目存储空间、优先的技术支持和更少的Unity标识水印,适合专业开发者和商业项目。 在提供的压缩包文件中,“Unity_v4.x.ulf”可能是...
1. **全历核心功能**:全历能够展示日视图、周视图、月视图和Agenda视图等多种时间轴布局,支持拖放操作以调整事件的时间和位置,同时提供事件的创建、编辑和删除功能。 2. **事件数据源**:全历可以通过JSON、Ajax...
通常,这样的文件会包含所有必要的组件,如编辑器、运行时环境和必要的库,以便在Mac上顺利运行和开发Unity项目。 在MAC版Unity 4.2.2中,开发者可以享受到一系列功能和改进。例如,图形渲染可能得到了提升,支持...
- **易用性**:通过直观的可视化设计器,用户可以快速创建和编辑报表。 - **灵活性**:支持多种数据源,包括数据库、XML、JSON等,且可以编写自定义脚本来处理复杂的数据逻辑。 - **高性能**:FastReport拥有高效的...
在`react_recipelog`项目中,React被用来构建各个页面和交互元素,如添加、编辑和查看食谱。 **Redux状态管理** Redux是React应用中广泛采用的状态管理库,它提供了一个全局的store来集中管理应用的所有状态。在`...
7. **工具和扩展**:Babylon.js生态系统包含了多个工具和扩展,如场景编辑器、模型转换工具、预处理器等,帮助开发者更高效地工作。 8. **学习资源**:Babylon.js社区提供了丰富的文档、教程和示例代码,方便开发者...
3. 工具与资源:SDK包含了开发工具和辅助资源,如地图样式编辑器、调试工具等,帮助开发者提高开发效率。 4. 框架集成:SDK提供了与常见前端框架(如React、Vue、Angular)的集成指南,使得API可以无缝融入现代Web...
在编写视频捕捉程序时,我们需要创建一个Filter Graph,它由不同的过滤器组成,包括捕获源过滤器(通常由摄像头驱动提供)、视频渲染过滤器等。通过调用DirectShow的API,如`CoCreateInstance`创建过滤器,`Graph...
- **2.2.6 特征库编辑器工具栏(Feature Dictionary Editor Toolbar)** - 管理特征库,用于快速调用预定义的特征。 - **2.2.7 知识工程工具栏(Knowledgeware Toolbar)** - 应用参数化设计和规则驱动设计。 ...
它提供了一个内置的可视化编辑器,使得游戏逻辑的构建无需编写过多代码,但同时也支持使用GDScript编程语言进行更高级的定制。 2. **版本迭代**:从v3.2到v4的升级,Godot引入了大量改进和新特性。例如,v4版本引入...
2. **创建Filter Graph**:使用grabberds的接口创建一个包含视频源、解码器(如果需要)和帧捕获组件的过滤器图。 3. **连接组件**:将各个过滤器通过接口连接起来,形成数据流的通路。 4. **启动捕获**:调用相应...
3. **设计时属性编辑器(Design-Time Property Editors)**: - **定义**:提供了直观的界面供开发者调整图表的各个细节属性。 - **应用场景**:适合快速原型设计阶段以及UI定制需求较高的项目。 - **优势**:...