????? 用flex? 做项目的时候需要用到Tree打开所有节点的功能,API上只提供打开单个节点的,GOOGLE未果后,自己动手尝试写了个方法。
?
场景:进入页面的时候打开所有节点。数据格式为XML,其它类型没有验证。
?
代码如下:其中deviceTree为树组件的ID
?
private function expandTree():void
{
for each (var item:XML in deviceTree.dataProvider)
{
deviceTree.expandItem(item, true);
expandTreeChildren(item);
}
}
private function expandTreeChildren(item:XML):void
{
if (item.children().length() > 0)
for each (var child:XML in item.children())
{
deviceTree.expandItem(child, true);
expandTreeChildren(child);
}
}
?
flex 代码
<mx:Tree x="27"
y="10"
width="225"
labelField="@path"
dataProvider="{deviceData}"
id="deviceTree"
creationComplete="expandTree()"
itemRenderer="util.tree.MyTreeItemRenderer"
height="445">
</mx:Tree>
?