文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Flex渲染机制中外部Flex渲染器怎么用

2023-06-17 14:06

关注

这篇文章主要为大家展示了“Flex渲染机制中外部Flex渲染器怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex渲染机制中外部Flex渲染器怎么用”这篇文章吧。

Flex渲染机制之外部Flex渲染器

这种Flex渲染器的MXML标记和ActionScript代码与使用该渲染器的列表位于同一文件中。代码与文件中的其余代码内联。您应该还记得我说过,应该将内联渲染器视作单独的类。事实上,Flex编译器提取这些内联代码并为您创建类。内联渲染器的优势在于代码与列表位于同一位置,但是如果渲染器变得复杂时,这又变成了劣势。本文中我将向您展示如何自己创建类。

将Flex渲染器提取到一个外部文件有几个优势:

◆渲染器可轻松用于多个列表中

◆代码更容易维护

◆可以使用FlexBuilder的“设计”视图草拟出最初的渲染器

MXML渲染器

在第1部分中,您看到有一个复杂的渲染器用于DataGrid:

<mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="Title"dataField="title"> <mx:itemRenderer> <mx:Component> <mx:HBoxpaddingLeftmx:HBoxpaddingLeft="2"> <mx:Script> <![CDATA[  overridepublicfunctionsetdata(value:Object):void{  super.data=value;  vartoday:Number=(newDate()).time;  varpubDate:Number=Date.parse(data.date);  if(pubDate>today)setStyle("backgroundColor",0xff99ff);  elsesetStyle("backgroundColor",0xffffff);  }  ]]>  </mx:Script> <mx:Imagesourcemx:Imagesource="{data.image}"width="50"height="50" scaleContent="true"/> <mx:Textwidthmx:Textwidth="100%"text="{data.title}"/> </mx:HBox> </mx:Component>  </mx:itemRenderer> </mx:DataGridColumn>

◆Flex渲染器基于HBox,包含一个Image和一个Text,并且根据项目记录的pubDate字段设置背景色。可以使用以下步骤将同一Flex渲染器编写为一个外部文件:

如果您使用FlexBuilder,请新建一个MXMLComponent文件(我将我的文件命名为GridColumnSimpleRenderer,您可以随意命名),将根标记设置为HBox。不必担心大小。

如果您只使用SDK,请新建一个MXML文件(将它命名为GridColumnSimpleRenderer.mxml),将根标记设置为HBox。
在文件打开时,复制<mx:HBox>与</mx:HBox>之间的所有内容,但不要复制那些标记,因为文件中已有它们。结果应该如下:

<?xmlversionxmlversion="1.0"encoding="utf-8"?> <mx:HBoxxmlns:mxmx:HBoxxmlns:mx="http://www.adobe.com/2006/mxml" width="400"height="300"> <mx:Script> <![CDATA[  overridepublicfunctionsetdata(value:Object):void{  super.data=value;  vartoday:Number=(newDate()).time;  varpubDate:Number=Date.parse(data.date);  if(pubDate>today)setStyle("backgroundColor",0xff99ff);  elsesetStyle("backgroundColor",0xffffff);  }  ]]></mx:Script> <mx:Imagesourcemx:Imagesource="{data.image}"width="50"height="50" scaleContent="true"/> <mx:Textwidthmx:Textwidth="100%"text="{data.title}"/> </mx:HBox>

保存此文件。

现在修改DataGridColumn定义,方法是删除内联渲染器并将它替换为以下内容:

<mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="Title"dataField="title"  itemRenderer="GridColumnSimpleRenderer">

现在运行这个应用程序。您会大吃一惊。因为行很高。这是因为渲染器上的height="300"。

◆决定Flex渲染器的宽度和高度

List控制始终设置渲染器的宽度。本例中将忽略明确的width="400"。您应当编写自己的渲染器,假设用户更改列或列表宽度是宽度会更改。

高度则是另一回事。如果列表设置了明确的rowHeight,它会将这个高度强加到各行,忽略您对渲染器设置的任何高度。但是,如果您将列表的variableRowHeight属性设置为true,则列表会慎重考虑渲染器的高度。在本例中,高度明确设置为300,所以各行为300像素高。

要修复它,请从渲染器文件中删除明确高度,应用程序即可正确运行。

以上是“Flex渲染机制中外部Flex渲染器怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯