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 是自己动态创建的
<node name="军网八一电视6" desc="" id="95d3364419bc4a55ae1412ed73d025cf" parentid="" icon="null"> <node id="815df5f8c0884e3996e756a0648f3440" name="temp策略1" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="1924bd7a7a374320b73cf5c09e6bccfb" name="temp策略4" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="c9db2a837279423a8c3626b11d61b2e5" name="uuuu" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="4" icon="gray"/> <node id="f412962ef1bb4f2fb695439e8aae21ac" name="zytest10.22" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="b86d2dee1b9740dc88814af304b59f92" name="全局素材视频-XML策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="1" icon="green"/> <node id="55eff4c41ac74f459ba840998ebd2a38" name="全局素材音频-XML策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="c9a186d444e9408d95da75f11c4503aa" name="全局非MP4素材" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="d7a9ed13dd634749b4c0561f576b458f" name="卫视频道-收录策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="c41ab29f6714453ba2ea017e0c428eae" name="卫视频道-文件策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="4" icon="gray"/> <node id="1" name="新闻频道-收录策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="b64744ff0eb74c778175ee7e3b0cc126" name="新闻频道-文件策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="4" icon="gray"/> <node id="83cb6c9fd26344518f10f07e6a9ecf81" name="测试用策略-请勿关联_01" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="4" icon="gray"/> <node id="12c4cf65f99e4ea3bbd2cf1b527a4dae" name="网络视频抓取策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/> <node id="11" name="英夫美迪音频��描策略" parentid="95d3364419bc4a55ae1412ed73d025cf" selected="0" currentState="0" icon="gray"/></node>

上面是动态生成的结果
遇到问题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;

[b][i]return document[icon];[/i][/b]
}
else
{
return Class(icon);
}

会执行到这里 return document[icon]; 明显是走了icon is String 看来class被转了
于是干脆就给引用class字符串了 如:icon="gray" 在主文件里引入class文件 iconClass = Class(systemManager.getDefinitionByName(String(icon)));
flex会自动根据提供的字符串转成class 然后去匹配。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值