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>