Flex中如何利用isBranch()事件,检测Tree的节点是支节点还是叶子节点

本文展示了一个使用Adobe Flex框架创建的Tree组件实例。该实例通过自定义的数据提供者和标签函数实现了动态显示分支节点的功能,并在点击节点时更新显示当前选中节点是否为分支。

main.mxml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
  3. layout="vertical"
  4. verticalAlign="middle"
  5. backgroundColor="white">
  6. <mx:Script>
  7. <![CDATA[
  8. import mx.events.ListEvent;
  9. private function tree_itemClick(evt:ListEvent):void {
  10. var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(tree.selectedItem);
  11. lbl.text = itemIsBranch.toString();
  12. }
  13. private function tree_labelFunc(item:XML):String {
  14. var returnStr:String = item.@label;
  15. var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(item);
  16. if (itemIsBranch) {
  17. returnStr += " (BRANCH)";
  18. }
  19. return returnStr;
  20. }
  21. ]]>
  22. </mx:Script>
  23. <mx:XMLid="xmlDP">
  24. <node>
  25. <nodelabel="1.a" />
  26. <nodelabel="1.b" />
  27. <nodelabel="1.c">
  28. <nodelabel="1.c.i" />
  29. <nodelabel="1.c.ii" />
  30. <nodelabel="1.c.iii" />
  31. <nodelabel="1.c.iv" />
  32. <nodelabel="1.c.v" />
  33. </node>
  34. <nodelabel="1.d" />
  35. <nodelabel="1.e">
  36. <nodelabel="1.e.i" />
  37. <nodelabel="1.e.ii" />
  38. <nodelabel="1.e.iii">
  39. <nodelabel="1.e.iii.A" />
  40. </node>
  41. <nodelabel="1.e.iv" />
  42. </node>
  43. <nodelabel="1.f" />
  44. </node>
  45. </mx:XML>
  46. <mx:ApplicationControlBardock="true">
  47. <mx:FormstyleName="plain">
  48. <mx:FormItemlabel="isBranch():">
  49. <mx:Labelid="lbl" fontWeight="bold" />
  50. </mx:FormItem>
  51. </mx:Form>
  52. </mx:ApplicationControlBar>
  53. <mx:Treeid="tree"
  54. dataProvider="{xmlDP}"
  55. labelFunction="tree_labelFunc"
  56. showRoot="false"
  57. width="50%"
  58. rowCount="6"
  59. itemClick="tree_itemClick(event);"/>
  60. </mx:Application>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值