随笔 - 292  文章 - 38  评论 - 3616  阅读 - 190万

Flex中使用渲染器(ItemRenderer)

      Flex中的渲染器(ItemRenderer)使用非常频繁,可以让用户自行定义数据的显示格式,做过.NET开发的朋友我想都知道数据控件中的ItemTemplate,我个人认为Flex中的ItemRenderer和.NET中的ItemTemplate从功能上来说相差不大,在Flex要显示特定的格式完全可以通过ItemRenderer来自定义。

      在《使用TileList+TitleWindowt组件开发聊天表情功能 》这文章里其实就已经用到了ItemRenderer,只是没有专们提出来介绍,这里使用的是内部ItemRenderer,除此之外我们还可以使用外部ItemRenderer。故名思意内部ItemRenderer就是直接嵌套在Flex内部的,外部ItemRenderer则是将要显示的效果通过外部组件或是外部类来进行定义开发。

复制代码
<mx:TileList x="0" y="0" width="100%" height="100%" id="faceList" 
    dataProvider="{faceArray}" itemClick="onItemClick(event)">
    
<mx:itemRenderer>
        
<mx:Component>
            
<mx:Image source="{data.ImageUrl}"/>
        
</mx:Component>
    
</mx:itemRenderer>
</mx:TileList>
复制代码

 

      如上则是使用的内部ItemRenderer,通过<mx:itemRenderer>和<mx:Component>在Flex组件的内部定义项目渲染器(ItemRenderer)。如果想使用外部ItemRenderer的方式实现呢,则需要定义一个外部ItemRenderer,将Renderer的格式在自定义的类或组件中去实现,如下:

复制代码
package
{
    import mx.core.UIComponent;
    
    
public class FaceRenderer extends UIComponent
    {
        
private var imageUrl:Image;
        
        
public function FaceRenderer()
        {
            super();
        }
        
        
protected override function createChildren():void
        {
            imageUrl = new Image();
        }
        
        
protected override function commitProperties():void
        {
            super.commitProperties();
            imageUrl.source = data.ImageUrl;
        }
    }
}
复制代码

 

      在Flex组件中通过ItemRenderer属性引用自定义的外部渲染器就OK了,最终效果就是《使用TileList+TitleWindowt组件开发聊天表情功能 》这文章里的效果。

 

<mx:TileList x="0" y="0" width="100%" height="100%" id="faceList" 
    dataProvider="{faceArray}" 
    itemClick="onItemClick(event)" 
    itemRenderer="FaceRenderer">
</mx:TileList>

 

posted on   Bēniaǒ  阅读(4848)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

点击右上角即可分享
微信分享提示