回复:Tree树的展开问题
http://www.adobe.com/devnet/flex/quickstart/working_with_tree/ExpandItem函数是用于指定节点下的一层展开,但是不包括该节点之上的父节点,所以可能的效果就是整个树看起来是收拢的,但是ExpandItem作用的节点确是在内部展开了的,当你点击展开完它的上级节点时,就能够看到。
所以这边就涉及到一个父节点循环展开的问题。
例如:
<XML id="xml">
<node label="Root" level="0">
<node label="A" level="1">
<node label="a" level="2">
<node label="x" level="3">
</node>
</node>
<node label="b" level="2">
</node>
</node>
<node label="B" level="1">
<node label="c" level="2">
<node label="y" level="3">
</node>
<node label="y" level="3">
</node>
</node>
</node>
</node>
</XML>
这边要求树展开到Level 2,最后的树样应该是: (a与c节点下的字节点不展开)
Root
A
+a
b
B
+c
父节点循环展开:
1. 展开Level = 0
tree.expandItem(xml[0], true); // 展开Level为0的节点
2. 展开Level = 1
var xmlListLevel1

MLList = xml.node.(@level == "1"); // 得到所有Level为1的节点
for(var i:int=0; i<xmlListLevel1.length(); i++) // 循环展开Level为1的节点
{
tree.expandItem(xmlListLevel1
, true);
}
大家可以试试看,也欢迎大家指出不妥之处。
谢谢!