Flex中如何利用isBranch()事件检测Tree的节点是支节点还是叶子节点的例子
By Minidxer | December 26, 2008
接下来的例子演示了Flex中如何利用isBranch()事件,检测Tree的节点是支节点还是叶子节点。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- import mx.events.ListEvent;
- private function tree_itemClick(evt:ListEvent):void {
- var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(tree.selectedItem);
- lbl.text = itemIsBranch.toString();
- }
- private function tree_labelFunc(item:XML):String {
- var returnStr:String = item.@label;
- var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(item);
- if (itemIsBranch) {
- returnStr += " (BRANCH)";
- }
- return returnStr;
- }
- ]]>
- </mx:Script>
- <mx:XML id="xmlDP">
- <node>
- <node label="1.a" />
- <node label="1.b" />
- <node label="1.c">
- <node label="1.c.i" />
- <node label="1.c.ii" />
- <node label="1.c.iii" />
- <node label="1.c.iv" />
- <node label="1.c.v" />
- </node>
- <node label="1.d" />
- <node label="1.e">
- <node label="1.e.i" />
- <node label="1.e.ii" />
- <node label="1.e.iii">
- <node label="1.e.iii.A" />
- </node>
- <node label="1.e.iv" />
- </node>
- <node label="1.f" />
- </node>
- </mx:XML>
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain">
- <mx:FormItem label="isBranch():">
- <mx:Label id="lbl" fontWeight="bold" />
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- <mx:Tree id="tree"
- dataProvider="{xmlDP}"
- labelFunction="tree_labelFunc"
- showRoot="false"
- width="50%"
- rowCount="6"
- itemClick="tree_itemClick(event);" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Tree |
No Comments » |
Tags: dataDescriptor, isbranch, labelFunction, Tree.