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

By Minidxer | December 26, 2008

接下来的例子演示了Flex中如何利用isBranch()事件,检测Tree的节点是支节点还是叶子节点。

让我们先来看一下Demo可以右键View Source或点击这里察看源代码):


下面是完整代码(或点击这里察看):

Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white">
  6.  
  7.     <mx:Script>
  8.         <![CDATA[
  9.             import mx.events.ListEvent;
  10.  
  11.             private function tree_itemClick(evt:ListEvent):void {
  12.                 var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(tree.selectedItem);
  13.                 lbl.text = itemIsBranch.toString();
  14.             }
  15.  
  16.             private function tree_labelFunc(item:XML):String {
  17.                 var returnStr:String = item.@label;
  18.                 var itemIsBranch:Boolean = tree.dataDescriptor.isBranch(item);
  19.                 if (itemIsBranch) {
  20.                     returnStr += " (BRANCH)";
  21.                 }
  22.                 return returnStr;
  23.             }
  24.         ]]>
  25.     </mx:Script>
  26.  
  27.     <mx:XML id="xmlDP">
  28.         <node>
  29.             <node label="1.a" />
  30.             <node label="1.b" />
  31.             <node label="1.c">
  32.                 <node label="1.c.i" />
  33.                 <node label="1.c.ii" />
  34.                 <node label="1.c.iii" />
  35.                 <node label="1.c.iv" />
  36.                 <node label="1.c.v" />
  37.             </node>
  38.             <node label="1.d" />
  39.             <node label="1.e">
  40.                 <node label="1.e.i" />
  41.                 <node label="1.e.ii" />
  42.                 <node label="1.e.iii">
  43.                     <node label="1.e.iii.A" />
  44.                 </node>
  45.                 <node label="1.e.iv" />
  46.             </node>
  47.             <node label="1.f" />
  48.         </node>
  49.     </mx:XML>
  50.  
  51.     <mx:ApplicationControlBar dock="true">
  52.         <mx:Form styleName="plain">
  53.             <mx:FormItem label="isBranch():">
  54.                 <mx:Label id="lbl" fontWeight="bold" />
  55.             </mx:FormItem>
  56.         </mx:Form>
  57.     </mx:ApplicationControlBar>
  58.  
  59.     <mx:Tree id="tree"
  60.             dataProvider="{xmlDP}"
  61.             labelFunction="tree_labelFunc"
  62.             showRoot="false"
  63.             width="50%"
  64.             rowCount="6"
  65.             itemClick="tree_itemClick(event);" />
  66.  
  67. </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子

Topics: Tree | No Comments » | Tags: , , ,

Search Posts