4,327
社区成员




<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="800" height="500" creationComplete="init()" xmlns:ns1="aaa.*">
<mx:Script>
<![CDATA[
import mx.events.TreeEvent;
private function handleItemClose(evt:TreeEvent):void
{
tree1.expandChildrenOf(evt.item, false);
}
private function init():void {
this.tree1.addEventListener(TreeEvent.ITEM_CLOSE, handleItemClose);
}
private function getAllChildLabel():void
{
if(tree1.selectedItem) {
var allChild:Array = [];
var xml:XML = tree1.selectedItem as XML;
this.getAllChild(allChild, xml);
this.textArea1.text = allChild.join("\n");
}
}
private function getAllChild(allChild:Array, xml:XML):void
{
allChild.push(xml.@label);
if(xml.children().length()>0) {
for each(var node:XML in xml.children())
arguments.callee(allChild,node);
}
}
private function getAllParentLabel():void
{
if(tree1.selectedItem) {
var allParent:Array = [];
var xml:XML = tree1.selectedItem as XML;
this.getAllParent(allParent, xml);
this.textArea1.text = allParent.join("\n");
}
}
private function getAllParent(allParent:Array, xml:XML):void
{
allParent.push(xml.@label);
if(xml.parent()) {
arguments.callee(allParent, xml.parent());
}
}
]]>
</mx:Script>
<mx:Tree id="tree1" labelField="@label" showRoot="true" width="300" height="300">
<mx:XMLListCollection id="MailBox">
<mx:XMLList>
<folder label="Mail">
<folder label="INBOX"/>
<folder label="Personal Folder">
<Pfolder label="Business" />
<Pfolder label="Demo" />
<Pfolder label="Personal" isBranch="true" />
<Pfolder label="Saved Mail" />
</folder>
<folder label="Sent" />
<folder label="Trash" />
</folder>
</mx:XMLList>
</mx:XMLListCollection>
</mx:Tree>
<mx:Button id="button1" x="201" y="308" label="得到选择节点下的所有子节点label值" click="getAllChildLabel()" />
<mx:Button id="button2" x="201" y="338" label="得到选择节点的所有父节点label值" click="getAllParentLabel()" />
<mx:TextArea id="textArea1" x="317" y="2" width="276" height="298"/>
</mx:WindowedApplication>