1.在数据源中设置icon
2.通过设置函数 setItemItcon
3.用iconFunction 这里说一点本人的处理方式
image class
[Embed(source="dir/1.jpg")]
[Bindable]public var green:Class;
[Embed(source="dir/2.jpg")]
[Bindable]public var yellow:Class;
[Embed(source="dir/3.jpg")]
[Bindable]public var red:Class;
[Embed(source="dir/gray.jpg")]
[Bindable]public var gray:Class;
因为我的数据源xml 是自己动态创建的
上面是动态生成的结果
遇到问题1:使用iconFunction 你会发现每个item 都是一整个xml 无奈没法用
遇到问题2:动态生成xml为xml设置icon clas图标发现都变成string了
查看源码如下
if (icon == null)
icon = getStyle("defaultLeafIcon");
//convert to the correct type and class
if (icon is Class)
{
return icon;
}
else if (icon is String)
{
iconClass = Class(systemManager.getDefinitionByName(String(icon)));
if (iconClass)
return iconClass;
return document[icon];
}
else
{
return Class(icon);
}
会执行到这里 return document[icon]; 明显是走了icon is String 看来class被转了
于是干脆就给引用class字符串了 如:icon="gray" 在主文件里引入class文件 iconClass = Class(systemManager.getDefinitionByName(String(icon)));
flex会自动根据提供的字符串转成class 然后去匹配。