Tree范例
Tree实例
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <mx:Tree labelField="@label" top="10" bottom="10" left="10" right="10"> <fx:XMLList> <node label="部门"> <node label="人事部"> <node label="张三"/> </node> <node label="技术部"> <node label="李四"/> <node label="王五"/> </node> <node label="市场部" isBranch="true"/> </node> </fx:XMLList> </mx:Tree> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <mx:Tree labelField="label" top="10" bottom="10" left="10" right="10"> <s:ArrayCollection> <fx:Object label="部门"> <fx:children> <fx:Object label="人事部"> <fx:children> <fx:Object label="张三"/> </fx:children> </fx:Object> <fx:Object label="技术部"> <fx:children> <fx:Object label="李四"/> <fx:Object label="王五"/> </fx:children> </fx:Object> <fx:Object label="市场部" children="{[]}"/> </fx:children> </fx:Object> </s:ArrayCollection> </mx:Tree> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300" creationComplete="creationCompleteHandler(event)"> <fx:Declarations> <fx:XML id="treeData"> <node label="部门"> <node label="人事部"> <node label="张三"/> </node> <node label="技术部"> <node label="李四"/> <node label="王五"/> </node> <node label="市场部" isBranch="true"/> </node> </fx:XML> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Tree; import mx.events.FlexEvent; protected function creationCompleteHandler(event:FlexEvent):void { var tree:Tree=new Tree(); tree.labelField="@label"; tree.percentWidth=100; tree.percentHeight=100; tree.setStyle("borderVisible", false); tree.dataProvider=treeData; addElement(tree); } ]]> </fx:Script> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <fx:Declarations> <fx:XMLList id="treeData"> <node label="部门"> <node label="人事部"> <node label="张三"/> </node> <node label="技术部"> <node label="李四"/> <node label="王五"/> </node> <node label="市场部" isBranch="true"/> </node> </fx:XMLList> </fx:Declarations> <mx:Tree labelField="@label" dataProvider="{treeData}" defaultLeafIcon="@Embed(source='assets/leaf.gif')" folderClosedIcon="@Embed(source='assets/closed.gif')" folderOpenIcon="@Embed(source='assets/open.gif')" top="10" bottom="10" left="10" right="10"> </mx:Tree> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <fx:Script> <![CDATA[ private function expandTree(isExpand:Boolean):void { tree.validateNow(); tree.expandChildrenOf(treeData, isExpand); } ]]> </fx:Script> <fx:Declarations> <fx:XML id="treeData"> <node label="部门"> <node label="人事部"> <node label="张三"/> </node> <node label="技术部"> <node label="李四"/> <node label="王五"/> </node> <node label="市场部" isBranch="true"/> </node> </fx:XML> </fx:Declarations> <mx:Tree id="tree" dataProvider="{treeData}" labelField="@label" top="40" bottom="10" left="10" right="10"> </mx:Tree> <s:Button id="expandBtn" x="10" y="10" label="全部展开" click="expandTree(true)"/> <s:Button id="collapseBtn" x="90" y="10" label="全部收起" click="expandTree(false)"/> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <fx:Script> <![CDATA[ private function expandTree(isExpand:Boolean):void { tree.validateNow(); tree.expandChildrenOf(treeData.getItemAt(0), isExpand); } ]]> </fx:Script> <fx:Declarations> <s:ArrayCollection id="treeData"> <fx:Object label="部门"> <fx:children> <fx:Object label="人事部"> <fx:children> <fx:Object label="张三"/> </fx:children> </fx:Object> <fx:Object label="技术部"> <fx:children> <fx:Object label="李四"/> <fx:Object label="王五"/> </fx:children> </fx:Object> <fx:Object label="市场部"/> </fx:children> </fx:Object> </s:ArrayCollection> </fx:Declarations> <mx:Tree id="tree" dataProvider="{treeData}" labelField="label" top="40" bottom="10" left="10" right="10"> </mx:Tree> <s:Button id="expandBtn" x="10" y="10" label="全部展开" click="expandTree(true)"/> <s:Button id="collapseBtn" x="90" y="10" label="全部收起" click="expandTree(false)"/> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <fx:Declarations> <fx:XMLList id="treeData"> <node id="00" pid="root" label="部门" isBranch="true"/> <node id="0001" pid="00" label="人事部" isBranch="true"/> <node id="000101" pid="0001" label="张三"/> <node id="0002" pid="00" label="技术部" isBranch="true"/> <node id="000201" pid="0002" label="李四"/> <node id="000202" pid="0002" label="王五"/> <node id="0003" pid="00" label="市场部"/> </fx:XMLList> </fx:Declarations> <fx:Script> <![CDATA[ import mx.events.TreeEvent; protected function getChildren(id:String):XMLList { return treeData.(@pid == id); } protected function asyncTree_itemOpeningHandler(event:TreeEvent):void { if (event.opening && ((event.item as XML).children().length() == 0)) { var children:XMLList=getChildren(event.item.@id); event.item.appendChild(children); } } ]]> </fx:Script> <mx:Tree id="asyncTree" labelField="@label" dataProvider="{getChildren('root')}" itemOpening="asyncTree_itemOpeningHandler(event)" top="10" bottom="10" left="10" right="10"> </mx:Tree> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <fx:Declarations> <fx:Array id="treeData"> <fx:Object uid="00" pid="root" label="部门" children="{[]}"> </fx:Object> <fx:Object uid="0001" pid="00" label="人事部" children="{[]}"/> <fx:Object uid="000101" pid="0001" label="张三"/> <fx:Object uid="0002" pid="00" label="技术部" children="{[]}"/> <fx:Object uid="000201" pid="0002" label="李四"/> <fx:Object uid="000202" pid="0002" label="王五"/> <fx:Object uid="0003" pid="00" label="市场部"/> </fx:Array> </fx:Declarations> <fx:Script> <![CDATA[ import mx.events.TreeEvent; protected function getChildren(uid:String):Array { return treeData.filter(function(item:*, index:int, arr:Array):Boolean { return (item.pid == uid) ? true : false; }); } protected function asyncTree_itemOpeningHandler(event:TreeEvent):void { if (event.opening && (event.item.children.length == 0)) { var children:Array=getChildren(event.item.uid); event.item.children=children; } } ]]> </fx:Script> <mx:Tree id="asyncTree" labelField="label" dataProvider="{getChildren('root')}" itemOpening="asyncTree_itemOpeningHandler(event)" top="10" bottom="10" left="10" right="10"> </mx:Tree> </s:Application>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="600" minHeight="300"> <fx:Script> <![CDATA[ private function addNode():void { (tree.selectedItem as XML).appendChild(<node label="新节点"/>); } private function deleteNode():void { tree.dataDescriptor.removeChildAt(tree.selectedItem.parent(), tree.selectedItem, tree.selectedItem.childIndex(), tree.dataProvider); } ]]> </fx:Script> <fx:Declarations> <fx:XML id="treeData"> <node label="部门"> <node label="人事部"> <node label="张三"/> </node> <node label="技术部"> <node label="李四"/> <node label="王五"/> </node> <node label="市场部" isBranch="true"/> </node> </fx:XML> </fx:Declarations> <mx:Tree id="tree" dataProvider="{treeData}" labelField="@label" showRoot="false" top="40" bottom="10" left="10" right="10"> </mx:Tree> <s:Button id="addBtn" x="10" y="10" label="添加节点" click="addNode()"/> <s:Button id="deleteBtn" x="90" y="10" label="删除节点" click="deleteNode()"/> </s:Application>