`
#天琪#
  • 浏览: 159400 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

关于itemRender

    博客分类:
  • AS3
阅读更多
知识点:
1、凡是基于列表的控件都有一个itemRenderer属性,它用来设置项目渲染器的属性,我们可以选择默认的渲染器也可以选择自定义。如果选择自定义,则在基于列表的控件中将自定义渲染器的类赋给itemRenderer属性,如<mx:Tree id="myTree" width="100%" height="100%" labelField="@label"
        showRoot="false" dataProvider="{treeData}"
        itemRenderer="renderers.ColoredFolderTreeItemRenderer"
        folderOpenIcon="@Embed('/assets/open.png')"
        folderClosedIcon="@Embed('/assets/closed.png')" />

自定义渲染器示例:

主程序:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">

    <mx:XMLList id="treeData">
    <node>
        <node label="Level 1 - 1">
            <node label="Level 2">
            <node label="Level 3">
            <node label="Level 4">
            <node label="Level 5"/>
            </node>
            </node>
            </node>
        </node>
        <node label="Level 1 - 2">
            <node label="Level 2">
            <node label="Level 3">
            <node label="Level 4">
            <node label="Level 5"/>
            </node>
            </node>
            </node>
        </node>
        <node label="Level 1 - 3">
            <node label="Level 2">
            <node label="Level 3">
            <node label="Level 4">
            <node label="Level 5"/>
            </node>
            </node>
            </node>
        </node>
</node>
    </mx:XMLList>

    <mx:Tree id="myTree" width="100%" height="100%" labelField="@label"
        showRoot="false" dataProvider="{treeData}"
        itemRenderer="renderers.ColoredFolderTreeItemRenderer"
        folderOpenIcon="@Embed('/assets/open.png')"
        folderClosedIcon="@Embed('/assets/closed.png')" />

</mx:Application>


ColoredFolderTreeItemRenderer类:
package renderers
{
import flash.filters.ColorMatrixFilter;

import mx.controls.treeClasses.TreeItemRenderer;
import mx.controls.treeClasses.TreeListData;

public class ColoredFolderTreeItemRenderer extends TreeItemRenderer
{
override protected function commitProperties():void
{
super.commitProperties();

if ( icon )
{
var matrix:Array = new Array();

switch (TreeListData( listData ).depth )
{
case 1:
matrix = matrix.concat([1, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, .25, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, .25, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
icon.filters = [ new ColorMatrixFilter( matrix) ]
break;
case 2:
matrix = matrix.concat([.25, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 1, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, .25, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
icon.filters = [ new ColorMatrixFilter( matrix) ]
break;
case 3:
matrix = matrix.concat([.25, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, .25, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 1, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
icon.filters = [ new ColorMatrixFilter( matrix) ]
break;
default:
icon.filters = [];
break;
}
}
}
}
}

演示效果如图所示:

知识点2:要通过使用 ActionScript 添加滤镜,请执行以下步骤(假定目标显示对象名为 myDisplayObject):

1)、使用所选滤镜类的构造函数方法创建一个新的滤镜对象。
2)、将 myDisplayObject.filters 数组的值分配给临时数组,例如一个名为 myFilters 的数组。
3)、将新的滤镜对象添加到临时数组 myFilters。
4)、将临时数组的值分配给 myDisplayObject.filters 数组。


commitProperties()是用来设置组样宽高样式等行为的方法。
  • 大小: 10.3 KB
分享到:
评论

相关推荐

    Flex 自定义Datagrid的ItemRender

    然而,Datagrid的默认渲染器可能无法满足所有复杂的需求,这时我们就需要自定义ItemRender来扩展其功能。本文将深入探讨如何在Flex中自定义Datagrid的ItemRender,以实现按钮、单选、复选和日期等控件的集成。 首先...

    Flex 定制ItemRender详细解释

    在Flex开发中,ItemRenderer是一种强大的机制,它允许开发者自定义数据列表或组合框等容器中每一项的显示方式。ItemRenderer是ActionScript类,它扩展了MX或Spark的基类,如mx.controls.listClasses.ItemRenderer或s...

    ItemRenderer的用法

    在ActionScript和Flex开发中,`ItemRenderer`是一种关键组件,用于自定义MX或Spark数据控件(如List、ComboBox等)中项呈现的方式。它允许开发者为数据集中的每一项提供独特的视觉表现,增强用户体验并提升应用的...

    item-render:Minecraft mod 将清单中显示的项目渲染到文件中

    在 Minecraft 这个深受玩家喜爱的沙盒游戏中,玩家可以通过编写自定义的模组(Mods)来扩展游戏的功能和体验。"item-render" 模组就是这样一个专为 Minecraft 设计的模组,它允许开发者将游戏内的物品清单显示的项目...

    flex datagrid中实现显示序列号

    在本篇文章中,我们将深入探讨如何在Flex DataGrid中利用`itemRender`来实现序列号的显示。 首先,了解`itemRenderer`的基本概念。`itemRenderer`是一个UIComponent子类的实例,它负责将数据对象转换为可视化的组件...

    Ant Design前端框架-其他

    &lt;/p&gt;&lt;p&gt;Upload&lt;/p&gt;&lt;p&gt; Upload 组件 itemRender 添加 actions 调用参数。&lt;/p&gt;&lt;p&gt; Upload 从拖动事件中删除 stopPropagation,并添加onDrop 回调。&lt;/p&gt;&lt;p&gt;Typography&lt;/p&gt;&lt;p&gt; Typography 增加斜体字支持。&lt;/p&gt;&lt;p&gt; ...

    wanna-ant-uploader

    - uploadListWrapperRender(uploadListNode: ReactElement, fileList: object[]) =&gt; React.ReactNode返回:整个组件的自定义包装文件列表已处理文件列表uploadListNode 包含由itemRender渲染的uploadList的所有项目...

    【JavaScript源代码】如何在CocosCreator中做一个List.docx

    然后在List类中定义相应的属性,如itemRender(列表项)、type(排列方式)和startAxisType(网格布局方向),并使用cc.Class和cc.Property装饰器来声明这些属性,以便在CocosCreator的属性面板中可视化配置。...

    react-pagination:简单但可配置的React分页组件

    React分页 React分页是使用React构建的非常简单但可配置的分页组件。 安装 bower install react-pagination 或者 npm install react-pagination 原料药 当通过react-pagination.min.js包含在浏览器中时,所有内容...

    ItemRendererTutorial.zip

    在“flex itemrender”这个主题下,我们将学习以下关键知识点: 1. 创建自定义ItemRenderer:首先,创建一个新类,继承自MX的MXItemRenderer或Spark的LabelItemRenderer,根据项目需求选择合适的基类。例如,我们...

    flex datagrid checkbox 全选/反选

    选项" headerRenderer="utils.itemrender.CheckBoxRender" itemRenderer="utils.itemrender.CheckBoxRender" /&gt; 名称" dataField="name" /&gt; &lt;!-- 更多列 --&gt; ``` 这里,`headerRenderer`和`itemRenderer`都...

    extjs 列表基本操作

    这可以通过监听“itemrender”事件并在回调函数中实现。在回调函数中,我们可以检查每一行的数据,如果满足特定条件,就使用CSS样式来改变行的背景颜色。例如,可以使用`Ext.util.CSS.createClass`创建新的CSS类,并...

    flex+as3项目渲染器的使用

    在Flex和AS3开发中,项目渲染器(ItemRenderer)是一个关键的概念,它允许开发者自定义数据项在UI组件中的显示方式。项目渲染器通常用于数据网格、列表或其他可滚动的容器,使得数据显示更加丰富和交互性更强。...

    MobTutorial:向 Minecraft 1.7.x 添加自定义士兵生物

    Forge 的 `ModelBakery` 和 `ItemRender` 系统可以帮助你在游戏中渲染出士兵的3D模型。 此外,你还需要为士兵创建一个物品,以便玩家可以生成或控制它。这需要创建一个新的 `Item` 类,并通过 `GameRegistry` 注册...

Global site tag (gtag.js) - Google Analytics