- 浏览: 407743 次
- 性别:
- 来自: 济南
最新评论
-
nianshi:
slideDown就是show的滑动效果版本, slideUp ...
Jquery零碎代码收藏 -
nianshi:
以后编写JS代码,少写<div onclick=&quo ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素相对父元素的偏移var p = $("p ...
Jquery零碎代码收藏 -
nianshi:
获取匹配元素在当前窗口的相对偏移var p = $(" ...
Jquery零碎代码收藏 -
wuchu:
谢谢
Flex 读取XML配置文件总结
您应该还记得我说过, 应该将内联 itemRenderer 视作单独的类。事实上, Flex 编译器提取这些内联代码并为您创建类。内联 itemRenderer 的优势在于代码与列表位于同一位置, 但是如果 itemRenderer 变得复杂时, 这又变成了劣势。本文中我将向您展示如何自己创建类。
将 itemRenderer 提取到一个外部文件有几个优势:
- itemRenderer 可轻松用于多个列表中
- 代码更容易维护
- 可以使用 Flex Builder 的“设计”视图草拟出最初的 itemRenderer
MXML itemRenderer
在第 1 部分中, 您看到有一个复杂的 itemRenderer 用于 DataGrid:
- < mx:DataGridColumn headerText = "Title" dataField = "title" >
- < mx:itemRenderer >
- < mx:Component >
- < mx:HBox paddingLeft = "2" >
- < mx:Script >
- <![CDATA[
- override public function set data( value:Object ) : void {
- super.data = value;
- var today:Number = (new Date()).time;
- var pubDate:Number = Date.parse(data.date);
- if( pubDate > today ) setStyle("backgroundColor",0xff99ff);
- else setStyle("backgroundColor",0xffffff);
- }
- ]]>
- </ mx:Script >
- < mx:Image source = "{data.image}" width = "50" height = "50" scaleContent = "true" />
- < mx:Text width = "100%" text = "{data.title}" />
- </ mx:HBox >
- </ mx:Component >
- </ mx:itemRenderer >
- </ mx:DataGridColumn >
<mx:DataGridColumn headerText="Title" dataField="title"> <mx:itemRenderer> <mx:Component> <mx:HBox paddingLeft="2"> <mx:Script> <![CDATA[ override public function set data( value:Object ) : void { super.data = value; var today:Number = (new Date()).time; var pubDate:Number = Date.parse(data.date); if( pubDate > today ) setStyle("backgroundColor",0xff99ff); else setStyle("backgroundColor",0xffffff); } ]]> </mx:Script> <mx:Image source="{data.image}" width="50" height="50" scaleContent="true" /> <mx:Text width="100%" text="{data.title}" /> </mx:HBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn>
itemRenderer 基于 HBox, 包含一个 Image 和一个 Text, 并且根据项目记录的 pubDate
字段设置背景色。可以使用以下步骤将同一 itemRenderer 编写为一个外部文件:
- 如果您使用 Flex Builder, 请新建一个 MXML Component 文件 (我将我的文件命名为 GridColumnSimpleRenderer
, 您可以随意命名), 将根标记设置为
HBox
。不必担心大小。 - 如果您只使用 SDK, 请新建一个 MXML 文件 (将它命名为 GridColumnSimpleRenderer.mxml
), 将根标记设置为
HBox
。
在文件打开时, 复制 <mx:HBox>
与 </mx:HBox>
之间的所有内容, 但不要复制那些标记, 因为文件中已有它们。结果应该如下:
- <? xml version = "1.0" encoding = "utf-8" ?>
- < mx:HBox xmlns:mx = "http://www.adobe.com/2006/mxml" width = "400" height = "300" >
- < mx:Script >
- <![CDATA[
- override public function set data( value:Object ) : void {
- super.data = value;
- var today:Number = (new Date()).time;
- var pubDate:Number = Date.parse(data.date);
- if( pubDate > today ) setStyle("backgroundColor",0xff99ff);
- else setStyle("backgroundColor",0xffffff);
- }
- ]]>
- </ mx:Script >
- < mx:Image source = "{data.image}" width = "50" height = "50" scaleContent = "true" />
- < mx:Text width = "100%" text = "{data.title}" />
- </ mx:HBox >
<?xml version="1.0" encoding="utf-8"?> <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300"> <mx:Script> <![CDATA[ override public function set data( value:Object ) : void { super.data = value; var today:Number = (new Date()).time; var pubDate:Number = Date.parse(data.date); if( pubDate > today ) setStyle("backgroundColor",0xff99ff); else setStyle("backgroundColor",0xffffff); } ]]> </mx:Script> <mx:Image source="{data.image}" width="50" height="50" scaleContent="true" /> <mx:Text width="100%" text="{data.title}" /> </mx:HBox>
现在修改 DataGridColumn 定义, 方法是删除内联 itemRenderer 并将它替换为以下内容:
- < mx:DataGridColumn headerText = "Title" dataField = "title"
- itemRenderer = "GridColumnSimpleRenderer" >
<mx:DataGridColumn headerText="Title" dataField="title" itemRenderer="GridColumnSimpleRenderer">
现在运行这个应用程序。您会大吃一惊。因为行很高。这是因为 itemRenderer 上的 height="300"
。
决定 itemRenderer 的宽度和高度
List 控制始终设置 itemRenderer 的宽度。本例中将忽略明确的 width="400"
。您应当编写自己的 itemRenderer, 假设用户更改列或列表宽度是宽度会更改。
高度则是另一回事。如果列表设置了明确的 rowHeight
, 它会将这个高度强加到各行, 忽略您对 itemRenderer 设置的任何高度。但是, 如果您将列表的 variableRowHeight
属性设置为 true
, 则列表会慎重考虑 itemRenderer 的高度。在本例中, 高度明确设置为 300, 所以各行为 300 像素高。
要修复它, 请从 itemRenderer 文件中删除明确高度, 应用程序即可正确运行。
动态更改 itemRenderer
本例覆盖了 set data()
函数以检查数据并设置 itemRenderer 的 backgroundColor
。这十分常见。覆盖 set data()
使您能截取为新行更改数据的时间, 并且您可以作出样式更改。
常见错误为:
- 忘记调用
super.data = value;
。这是致命错误-它会把 itemRenderer 弄乱。 - 忘记重置样式 (如果任何测试失败)。当
pubDate
是将来时, 可能只设置颜色会比较诱人, 但您必须记住, itemRenderer 是循环使用的, 所以else
语句很有必要。
发表评论
-
Flex小记录
2011-02-24 10:18 1262Flex读取XML: <mx:HTTPServic ... -
flex实现滑动显示隐藏效果
2010-12-30 15:30 1547鼠标划过的时候显示菜单栏 ,鼠标移开后隐藏菜单栏。比较常用 ... -
flex DataTimePicker时间控件
2010-12-27 11:54 1292两种DatatimePicker: 1.Datatim ... -
ActionScript 生成伪Guid
2010-12-24 09:52 1169在一个Flash制作的图片上传程序中(使用了FileRefer ... -
Flex中Image组件怎么才能非等比例拉伸图片
2010-12-23 15:49 1481Image组件怎么才能非等比例拉伸图片 设 ... -
Flex中Accordion用法
2010-12-23 11:45 3053<? xml version = & ... -
Flex(替代session过期)实现用户长时间不操作要求重新登录的处理
2010-12-23 11:08 1476flex(替代session过期)用户长时间不操作要求重新登录 ... -
ActionScript 3.0 Socket编程
2010-12-23 09:56 1138在使用ActionScript3.0进行编程 ... -
12个简单易用的flex函数
2010-12-21 10:10 11021.拷贝内容到剪贴板: ... -
Flex自定义控件——Pagebar分页控件
2010-12-20 09:41 5192开发时经常遇到用一个DataGrid分页显示 ... -
Flex资源,很全,很牛!
2010-12-20 09:30 14321、as3ebaylib http://code ... -
Flex 窗体 最大化、最小化实例
2010-12-20 09:28 2682---导入flexMdi.swc (http ... -
在Flex中复制文字到操作系统的剪贴板
2010-12-15 11:18 1206这个实例演示了怎么样使用System. ... -
Flex让Slider控件拖动时显示Tooltip
2010-12-14 16:10 1872格式化与自定义Slider中显示的Tooltip ... -
Flex给Alert加个Icon
2010-12-14 16:05 1257给Alert加个Icon 很简单只要先 Embed 一 ... -
在Flex中用Validator验证数字、字符串、Email、电话号码等
2010-12-14 09:54 4272mx.validators ... -
Flex中使用FileReference类下载文件
2010-12-14 09:47 1765下面的实例演示了Flex中的 File ... -
Flex使用ArrayCollection的filterFunction属性过滤DataGrid
2010-12-14 09:42 1768下面的实例演示了在Flex中怎样使用 ... -
Flex 树形控件(Tree )的使用
2010-12-13 16:24 3440一、树形控件的常用属性 1、dragMoveE ... -
FLEX3中应用CSS完全详解手册(下)
2010-12-13 11:40 847myTabs中的设置 cornerRadiusTab ...
相关推荐
flex渲染器flex渲染器flex渲染器
flex中渲染器简介 本系列讨论 Flex itemRenderer 以及如何高效、有效地使用它们。
flex itemRenderer 渲染机制的概念和使用
简单的一个自定义label.根据dataGrid的数据变色.压缩包里一个是渲染器..一个是主程序....新建一个flex项目...把mxml和文件夹都放在scr下面就可以跑起来了..有问题请回复.
flex外部读取xml
flex中经常会使用到渲染器,这里简要介绍一下渲染器的一些知识
Arcgis server flex FeatureLayer 渲染用法
关与flex中项目渲染器的使用,有源码,说明详尽.仅供学习参考.
flex 多选CombBox CheckBox 渲染器 亲测可用
flex 图片查看器 flex图片 zoomin zoomout 图片查看器
FLEX 自动生成器
flex 动态载入外部图片 学习使用基础资料
flex特效编辑器 轻松编辑特效 带有演示和包 源代码等 很方便 开发flex游戏的利器!!
功能还不错的FLEX图文混合编辑器,支持WORD复制粘贴! 后台上传为PHP,要使用ASP,ASP.NET,或者JAVA稍微改下就可以用
flex 样式选择器,里面可以设置不同控件的样式,相当强大
最近做flex图片编辑器,网上找的例子,打包上传
flex样式设计器
可视的flex控件样式编辑器,不用写代码,把样式改成你喜欢的样式,复制代码就可以了
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
这是一个不错的flex效果,可以通过图形效果里设置的内容给自己的flex工程设置CSS