Flex Tree 运用外部图片做ICON

Flex Tree 使用外部图片做ICON

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]);
  }
 }
}