Flex 改变树结点图标的2种方法介绍(flex改变布局方向)深度揭秘

随心笔谈11个月前发布 admin
95 0

xmlns:s=”library://ns.adobe.com/flex/spark”

xmlns:mx=”library://ns.adobe.com/flex/mx” minWidth=”955″ minHeight=”600″>

]]>

id=”myTree”

showRoot=”false”

labelField=”@label”

itemRenderer=”com.flex.tree.dynamicicontree.IconTreeRenderer”>

package com.flex.tree.dynamicicontree

{

import flash.xml.*;

import mx.collections.*;

import mx.controls.Image;

import mx.controls.listClasses.*;

import mx.controls.treeClasses.*;

import mx.styles.StyleManager;

public class IconTreeRenderer extends TreeItemRenderer

{

protected var myImage:ImageRenderer;

private var imageWidth:Number=16;

private var imageHeight:Number=16;

private static var defaultImg:String=”windows.png”;

public function IconTreeRenderer ()

{

super();

}

override protected function createChildren():void

{

super.createChildren();

myImage=new ImageRenderer();

myImage.source=defaultImg;

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;

var imageSource:String=value.@iconName.toString();

if(imageSource!=””)

{

myImage.source=imageSource;

}else{

myImage.source=defaultImg;

}

}

//隐藏原有图标,并设置它的坐标

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;

}

}

}

}

}

package com.flex.tree.dynamicicontree

{

import mx.controls.Image;

public class ImageRenderer extends Image

{

private var defaultURL:String=”assets/icon/”;

public var iconName:String;

public function ImageRenderer()

{

super();

}

override public function set source(url:Object):void{

super.source=defaultURL + url;

iconName=url as String;

}

}

}

© 版权声明

相关文章