在flex里对树节点的增加和删除操作比较简单,本人也是在网上找了一些资源学习了一下,下面就是对树简单操作的代码直接粘到项目就可以看到效果
<?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="955" minHeight="600"
>
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
<fx:Declarations>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var d:XML = XML("<node value = 'test'></node>") ;
[Bindable]
private var dgdp:ArrayCollection = new ArrayCollection();
protected function addNode(event:Event):void
{
var newNode:XML = <node/>;
newNode.@value = ti.text;
var node:XML = XML(tree.selectedItem);
newNode.children()
node.appendChild(newNode);
ti.text = "";
}
protected function delNode():void
{
if(tree.selectedIndex == -1){
return;
}else{
var node:XML = XML(tree.selectedItem);
var child:XMLList = XMLList(node.parent()).children();
for(var i:int = 0;i < child.length();i++){
if((child[i].@value == node.@value)&&(node.@isBranch=true)){
delete child[i];
}
}
}
}
]]>
</fx:Script>
<mx:Tree id="tree" width="400" height="400" labelField="@value" dataProvider="{d}">
</mx:Tree>
<s:HGroup width="400" height="40" verticalAlign="middle" paddingLeft="10" >
<s:TextInput id="ti"/>
<s:Button label="add" enabled="{ti.text==''?false:true}" click="addNode(event)"/>
<s:Button label="delete" enabled="{tree.selectedIndex!=-1?true:false}" click="delNode()"/>
</s:HGroup>
</s:Application>