使用Array作为Tree的数据源

在TourdeFlex上看Tree的例子的时候,上面使用的是XML作为数据源

而有些时候可能数据源是Array类型的,所以就试了一下

下面是XML数据源的示例:

<mx: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>    

</mx:XMLList>

在FLEX中大部分组件上面的显示标题都是引用"label"属性来得到的,上面的XML也是一样

而子树的数据是引用什么属性呢?

在XML中取得子结点数据的方法是children,所以我们定义一个数据结构

public class TreeData

{

    public var label:String;

    public var children:Array;

    public var data:Object;

}

接下来我们可以定义一个组件

var tree:Tree = new Tree();



var data1:TreeData = new TreeData();

data1.label = "一级树支";



var data2:TreeData = new TreeData();

data2.label = "二级树支";

data1.children.push(data2);



var data3:TreeData = new TreeData();

data3.label = "三级树支";

data2.children.push(data3);



tree.dataProvider = data1;

这样就达到目的了,实际上上面这样的操作就是在模拟XML的属性。

参考:http://blog.minidx.com/2008/12/28/1837.html

你可能感兴趣的:(array)