<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2007/11/29/opening-nodes-in-a-flex-tree-control-using-the-expanditem-method/ --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import mx.events.ListEvent; private function comboBox_change(evt:ListEvent):void { var team:String = ComboBox(evt.currentTarget).selectedItem.@label; var node:XMLList = mlb.league.division.team.(@label == team); expandParents(node[0]); tree.selectedItem = node[0]; var idx:int = tree.getItemIndex(node[0]); tree.scrollToIndex(idx); } private function expandParents(node:XML):void { if (node && !tree.isItemOpen(node)) { tree.expandItem(node, true); expandParents(node.parent()); } } ]]> </mx:Script> <mx:XML id="mlb" source="mlb.xml" /> <mx:ApplicationControlBar dock="true"> <mx:ComboBox id="comboBox" prompt="Please select a team..." dataProvider="{mlb.league.division.team}" labelField="@label" change="comboBox_change(event);" /> </mx:ApplicationControlBar> <mx:Tree id="tree" dataProvider="{mlb}" labelField="@label" showRoot="false" width="300" rowCount="8" /> </mx:Application>