找了很久的資料,才解決tree加載時顯示所有節點這個問題,引自http://hi.baidu.com/lz0830/blog/item/7b406e82d7f41c98f703a632.html
該文中提出Tree的數據源在MXML文件中和數據源是從後臺程序獲取兩種情況:
一、針對第一種情況(tree的數據源在MXML文件中)的寫法:
private function initApp():void {
for each(var item:XML in this.myTree.dataProvider)
this.myTree.expandChildrenOf(item,true);
}
該函數的調用creationComplete="initApp()"
二、數據源從後臺程序獲取:
<!-- 讀取xml文件給tree綁定數據源 -->
<mx:HTTPService id="tree_httpsrv" url="assets/data/treeview.xml" result="setTree(event)" fault="faultOperation(event)" resultFormat="xml" />
<!-- 讀取xml文件的處理 -->
[Bindable]
private var tree_xml:XML;
private function setTree(event:ResultEvent):void
{
tree_xml = XML(event.result);
var tree_data:XMLList = tree_xml.treeviewNode;
myTree.dataProvider = tree_data;
myTree.callLater(expandTree);
}
private function expandTree():void
{
//expand all tree node
myTree.expandChildrenOf(tree_xml,true);
}