`
shlei
  • 浏览: 289806 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Flex利用渲染器动态修改tree的icon图标

    博客分类:
  • FLEX
阅读更多
Tree:
<mx:Tree dataProvider="{datatree}" showRoot="false" labelField="name" itemRenderer="common.IconTreeRenderer" width="100%" height="100%"/>

数据源datatree:
{"resource": {"application": "PostgreSQL Database Server", "app_uid": "/zport/dmd/Processes/UserApp/Database/PostgreSQL Database Server", "permission_type": "local"}, "uid": "/zport/dmd/Processes/UserApp/Database/PostgreSQL Database Server", "sIconUrl": "/zport/dmd/Processes/process/ls_zport_dmd_Processes_UserApp_Database_PostgreSQL_Database_Server.ico", "bIconUrl": "/zport/dmd/Processes/process/lb_zport_dmd_Processes_UserApp_Database_PostgreSQL_Database_Server.ico", "children": [], "name": "PostgreSQL Database Server"}, {"resource": {"application": "MySQL Database Server", "app_uid": "/zport/dmd/Processes/UserApp/Database/MySQL Database Server", "permission_type": "local"}, "uid": "/zport/dmd/Processes/UserApp/Database/MySQL Database Server", "sIconUrl": "", "bIconUrl": "", "children": [], "name": "MySQL Database Server"}

Tree ItemRenderer
读取JSON里配置的sIconUrl图标路径,然后加载到树上面,隐藏树本身的ICON图标。
package common
{
	import flash.xml.*;   
	
	import mx.collections.*;   
	import mx.controls.Alert;   
	import mx.controls.Image;   
	import mx.controls.listClasses.*;   
	import mx.controls.treeClasses.*;   
	
	/**
	 * 
	 * @author shilei, corporation YD
	 **/
	public class IconTreeRenderer extends TreeItemRenderer
	{
		[Embed(source="assets/devClass/app.png")]          //这是图片的相对地址
		[Bindable]
		public var app:Class;
		
		protected var myImage:Image;    
		private var imageWidth:Number = 16;   
		private var imageHeight:Number = 16;   
//		private static var defaultImg:String = "assets/devClass/app.png";  
		
		public function IconTreeRenderer()
		{
			super();
		}
		
		override protected function createChildren():void  
		{   
			super.createChildren();   
			myImage = new Image();   
			myImage.source = app;   //初始化设置默认图标
			myImage.width=imageWidth;   
			myImage.height=imageHeight;   
			myImage.setStyle( "verticalAlign", "middle" );   
			addChild(myImage);   
			
		}      
		//通过覆盖data方法来动态设置tree的节点图标   //修改此函数
		override public function set data(value:Object):void  
		{   
			super.data = value;
			if(!value || !myImage)return;
			
			var imageSource:String=value.sIconUrl;
			if(imageSource!="")   
			{   
				myImage.source='http://192.168.1.146:8080'+imageSource;   
			}else{   
				myImage.source=app;   
			}   
		}   
		//隐藏原有图标,并设置它的坐标   
		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void//下面函数照抄不变!  
		{   
			super.updateDisplayList(unscaledWidth, unscaledHeight);   
			if(super.data !=null)   
			{   
				if (super.icon != null)   
				{   
					myImage.x = super.icon.x;   
					myImage.y = 2;   
					super.icon.visible=false;   
				}   
				else  
				{   
					myImage.x = super.label.x;   
					myImage.y = 2;   
					super.label.x = myImage.x + myImage.width + 17;   
				}   
			}   
		}
	}
}

这个ItemRenderer用上之后,以后就可以直接根据JSON或XML的值自动更改图标而不用自己去遍历手动修改了,不过如果是本地图标最好用Embed绑定编译到程序里面,否则放到服务器会找不到图片,服务器存的图片可以直接用路径取:)

参考:http://blog.sina.com.cn/s/blog_51e82bab0100fy5e.html
分享到:
评论

相关推荐

    flex tree 修改icon方法

    综上所述,修改Flex Tree的icon涉及到创建自定义渲染器、数据绑定、根据数据源动态设置图标等步骤。理解这些概念和技巧对于构建具有个性化视觉效果的Flex应用程序至关重要。在实践中,需要注意代码的可维护性和性能...

    flex tree icon

    在IT行业中,"flex tree icon"通常指的是使用Flex技术构建的一种树形结构控件,它在用户界面上显示带有图标的层次数据。Flex是一种用于创建富互联网应用程序(RIA)的框架,基于ActionScript编程语言和Flash Player...

    flex带复选框的tree,flex checkboxtree

    itemRenderer是自定义的树节点渲染器,负责在节点上显示复选框。 2. ActionScript类文件:这部分是Flex的编程语言,用于实现组件的逻辑。可能有一个自定义的CheckBoxTree类,继承自mx.controls.Tree,并添加复选框...

    flex中渲染器简介

    Flex 渲染器是Flex框架中的一个重要特性,主要用于在列表控件如List、DataGrid、Tree等中定制数据显示。在Flex中,渲染器允许开发者自定义列表中每一项的外观和行为,以此来提高用户体验和视觉吸引力。本系列将深入...

    可编辑el-tree样式功能修改:修改icon、可编辑input、修改下拉展开icon位置

    本文将深入探讨如何对 el-tree 进行样式功能修改,包括更换图标(icon)、实现输入框可编辑以及调整下拉展开图标的定位。我们将基于 Vue.js 框架进行讲解。 首先,让我们了解 el-tree 的基本使用。el-tree 是 ...

    flex渲染器flex渲染器

    Flex渲染器是一种在Web开发中广泛使用的布局技术,主要用于创建响应式和动态的网页界面。Flex渲染器基于CSS(层叠样式表)的Flexbox模块,允许开发者更灵活地控制元素在容器内的排列方式,无论屏幕尺寸如何变化,都...

    Flex4_DataGrid_Tree_条目渲染器_源码

    在"Flex4_DataGrid_Tree_条目渲染器_源码"这个资源中,"My05_01_小老虎_List_Tree"可能包含了关于如何使用和自定义这两个组件的示例代码。你可以从中学习到如何创建和配置DataGrid和Tree,以及如何定义和应用自定义...

    flex Tree checkbox 修改过后的

    标题提到的“flex Tree checkbox 修改过后”,意味着原生的Flex Tree控件已经进行了自定义修改,以适应带有复选框功能的需求。 在Flex中实现Tree与Checkbox结合的关键点包括: 1. **创建自定义TreeItemRenderer**...

    Flex里用IconUtility动态加载Icon

    在本篇文章中,我们将深入探讨如何在Flex中利用`IconUtility`来实现动态加载Icon的功能。 首先,我们需要理解Flex的基本概念。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。在...

    flex tree控件

    综上所述,对Flex Tree控件的定制主要包括自定义节点渲染器以去除默认图标和添加线连接,同时还需要考虑性能优化和用户体验。通过深入理解和实践这些知识点,可以创建出符合项目需求、具有良好交互性的Tree控件。

    Flex tree的用法

    综上所述,Flex Tree是展示层次数据的强大工具,通过灵活的数据绑定、自定义渲染和丰富的交互特性,可以满足各种复杂的应用场景。在实际开发中,结合XML数据源,可以轻松构建出动态、交互性强的树状视图。通过学习和...

    flex itemRenderer 渲染机制的概念和使用

    Flex中的itemRenderer是一种关键的组件渲染机制,它允许开发者自定义列表或数据集项的显示方式。在Flex应用中,特别是在处理数据集如ArrayCollection时,我们常常需要以不同的方式展示每个项目,例如图片、文本或者...

    flex 自定义dataGrid渲染器.根据数据变色

    自定义渲染器是Flex组件定制的一部分,它可以让我们对UI元素的显示方式有更大的控制力。在这个场景中,我们创建了一个针对DataGrid的自定义Label渲染器,这个渲染器能够根据数据显示不同的颜色,以突出关键信息或者...

    Flex 动态加载 Image 和 Icon 解决方案

    `Loader` 类是 Flex 的核心组件之一,它负责加载各种类型的媒体,包括图像(Image)和图标(Icon)。以下是一个基本的 `Loader` 示例: ```actionscript var loader:Loader = new Loader(); loader....

    flex tree 教程二

    Flex Tree是Adobe Flex框架中的一个组件,用于展示层次结构数据,如文件系统、组织结构或任何其他具有层级关系的数据。本教程将深入讲解Flex Tree组件的使用方法和关键概念,帮助开发者更好地理解和应用这一功能强大...

    flex tree 中渲染checkBox

    在Flex中,你可以通过CSS或直接在组件上设置`icon`属性来改变CheckBox的图标。对于自定义样式,可以创建一个CSS文件,定义`.checkbox`类,然后在`CheckTreeRenderer`中引用这个类,以应用相应的图像。 在实现这个...

    flex_tree扩展_时间轴

    4. **数据绑定**:利用Flex的数据绑定机制将数据模型与界面元素关联,实现动态更新。 5. **事件处理**:学习如何监听和处理用户交互,如点击、滚动等事件。 6. **资源管理**:理解如何有效地管理应用中的图像、...

    flex 3.0流程编辑器修改版源码

    《Flex 3.0流程编辑器修改版源码解析与应用》 Flex 3.0是一种基于Adobe Flash Platform的开源框架,主要用于构建富互联网应用程序(RIA)。它提供了强大的图形渲染和用户界面组件库,使得开发者可以创建出交互性强...

    flex可扩展,动态改变图标的小树

    标题中的“flex可扩展,动态改变图标的小树”指的就是利用Flex框架,设计一个能够动态更新其图标,并且具有高度可扩展性的树形视图控件。 Flex中的树形控件(Tree)允许开发者展示层次结构的数据,它支持自定义图标...

    flex Tree 复选框。

    在Flex编程环境中,Tree组件是一种常用的用户界面元素,它用于展示层次结构的数据。在这个特定的场景中,我们关注的是在Flex Tree中集成复选框功能,这为用户提供了一种直观的方式来选择或操作树形结构中的多个节点...

Global site tag (gtag.js) - Google Analytics