flex tree 设置图标的几点总结

阅读更多
关于flex 设置图标有多种方式
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 然后去匹配。

你可能感兴趣的:(flex)