ActionScript:Treeの使い方

TreeのdataProvider属性にArrayなりArrayCollectionなりを指定すれば,
Treeに要素を羅列することはできる.

 var tree:Tree = new Tree;
 tree.dataProvider = ["aaa", "bbb", "ccc", "ddd"];

ただTreeで階層的に表示するには,ちょっとしたこつがいるのだ.
最初は次のように多次元配列を与えたのだがうまく行かなかった.

var tree:Tree = new Tree;
tree.dataProvider = ["aaa", "bbb", "ccc",
                      ["ddd", "eee"]];

こつはchildrenという属性を要素に持たせること.
具体的には次のようにするのだ.

var arr:Array = [
     {name:"aaa"}, 
     {name:"bbb"},
     {name:"ccc"}, 
     {name: "folder a",
      children: [
        {name:"ddd"},
        {name:"eee"}
       ]}
 ];

これをTreeのdataProvider属性に指定し,
labelField属性にラベルとして表示させたい属性(ここではname)を指定するとツリー表示される.

検証用のプログラムを貼付けておきますね.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
	<![CDATA[
		import mx.collections.ArrayCollection;
		private function initApp():void{ 
			var arr:Array = 
				[
					{name:"aaa"}, 
					{name:"bbb"},
					{name:"ccc"}, 
					{name: "folder a",
					 children: [
						{name:"ddd"},
						{name:"eee"}
				 		]}
				 ];
			tree.dataProvider = arr; 
		}
	]]>
</mx:Script>
	<mx:Panel width="250" height="200" layout="absolute" horizontalCenter="0" verticalCenter="0" title="TreeTest">
		<mx:Tree width="100%" height="100%" id="tree" labelField="name" showRoot="true" />
	</mx:Panel>
	
</mx:Application>