这个例子是用来选中子节点的同时展开父节点
<?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"> <s:layout> <s:VerticalLayout horizontalAlign="center"/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <fx:XML id="treeXML"> <root label="监控点"> <node label="厦门市软件园一期"> <node label="望海路一" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="观日路一" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="前埔南路一" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="虎仔山路一" source="http://helpexamples.com/flash/video/lights_long.flv"/> </node> <node label="厦门市软件园二期"> <node label="望海路二" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="观日路二" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="前埔南路二" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="虎仔山路二" source="http://helpexamples.com/flash/video/lights_long.flv"/> </node> <node label="厦门市软件园三期"> <node label="望海路三" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="观日路三" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="前埔南路三" source="http://helpexamples.com/flash/video/cuepoints.flv"/> <node label="虎仔山路三" source="http://helpexamples.com/flash/video/lights_long.flv"/> </node> </root> </fx:XML> </fx:Declarations> <fx:Script> <![CDATA[ import mx.events.ListEvent; private function selectedItem():void { var label:String = textI.text; var node:XMLList = treeXML.child("node").child("node").(@label == label); expandParents(node[0]); tree.selectedItem = node[0]; } private function expandParents(node:XML):void { if (node && !tree.isItemOpen(node)) { tree.expandItem(node, true); expandParents(node.parent()); } } protected function tree_itemClickHandler(event:ListEvent):void { // TODO Auto-generated method stub var node:XML = tree.selectedItem as XML; trace(node.@label); textI.text = node.@label; } ]]> </fx:Script> <s:TextInput text="望海路一" id="textI"/> <mx:Button label="选中" click="selectedItem()"/> <mx:Tree id="tree" width="300" height="400" dataProvider="{treeXML}" labelField="@label" showRoot="false" itemClick="tree_itemClickHandler(event)"/> </s:Application>
原文:http://blog.csdn.net/songanling/article/details/20916643