`
onnwll
  • 浏览: 5208 次
社区版块
存档分类
最新评论

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;

            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 然后去匹配。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics