说明:根据comboBox控件中的选择内容,自动定位到Tree中的节点,并展开
http://luhantu.iteye.com/blog/1536277
<?xml version="1.0" encoding="utf-8"?>
<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
<fx:Declarations>
<fx:XMLList id="treeData">
<node label="Mail Box">
<node label="Inbox">
<node label="Marketing"/>
<node label="Product Management"/>
<node label="Personal"/>
</node>
<node label="Outbox">
<node label="Professional"/>
<node label="Personal"/>
</node>
<node label="Spam"/>
<node label="Sent"/>
</node>
</fx:XMLList>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.events.ListEvent;
private function comboBox_change(evt:ListEvent):void
{
var team:String = ComboBox(evt.currentTarget).selectedItem.@label;
var node:XMLList = treeData.node.node.(@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());
}
}
]]>
</fx:Script>
<mx:ComboBox id="comboBox"
prompt="Please select a team..."
dataProvider="{treeData.node.node}"
labelField="@label"
change="comboBox_change(event);"/>
<mx:Tree id="tree"
dataProvider="{treeData}"
labelField="@label"
showRoot="false"
width="300"
rowCount="8" />
</s:VGroup>
Flex Tree自动定位节点
最新推荐文章于 2015-03-27 08:31:59 发布