Flex 中 组件的 icon字段只能 是一个Class 或一个Class 的字符串名字,如果要在组件中使用外部图片做为图标,还需要另外写一些代码.以下是为TREE使用外部图片做为ICON的一个类,使用时,你需要设置tree的iconFunction方法,并反回该类做为图标的类
package Unit
{
import flash.events.Event;
import flash.utils.Dictionary;
import mx.containers.VBox;
import mx.controls.Image;
public class IconClass extends VBox
{
//字典,避免同一个ICON重复加载,出现闪屏
static public var alliconsimage:Dictionary = new Dictionary();
public function IconClass()
{
super();
this.addEventListener(Event.ADDED_TO_STAGE,onAddToStage);
}
public function onAddToStage(e:Event):void
{
if(alliconsimage[Object(this.parent).listData.item] == null)
{//字典中没有该item的图标
alliconsimage[Object(this.parent).listData.item] = new Image();
alliconsimage[Object(this.parent).listData.item].source = Object(this.parent).listData.item.@icon.toXMLString();//加载
}
//this.source = Object(this.parent).listData.item.@icon.toXMLString()
if(this.numChildren==0)//没有添加过icon
this.addChild(alliconsimage[Object(this.parent).listData.item]);
}
}
}