在这里给你们记录下我学习的Flex树 网上准备Flex Tree的数据源大都XML类型,我以为XML不够ArrayCollection灵活,并且在网上用ArrayCollection做数据源的不多,因此在此记录下来node
1.准备树结点类ide
package util
{
import mx.collections.ArrayCollection;
public class Node
{
public var id:String
public var name:String;
public var children:ArrayCollection;
public function Node()
{
}学习
}
}spa
这个纯粹是一个相似Java Pojo的类,负载树的结点数据,在这个类中有个属性children ,目前我不知道这是否是Flex 树的内部属性,有了这个children属性,是ArrayCollection类型,这个属性的值是node结点的集合,那么Flex Tree会将其自动识别为子结点,在界面上添加到当前结点下面(这个也太强大了吧)递归
2.Flex Tree as(这里只写简单代码)ci
var nodes:ArrayCollection = new ArrayCollection(); //第一层树结点数据it
var nodesChildren:ArrayColleciton = new ArrayCollection; //孩子结点集合io
var aNode:Node = null; //树结点function
//先准备须要的子结点数据class
aNode = new Node();
aNode.id = "00";
aNode.name = "孩子结点1";
aNode.children = null; //当前结点若是没有孩子结点那么children设为null,若是有,则赋值为它的孩子集合,Flex Tree递归加载
nodesChildren.addItem(aNode);
aNode = new Node();
aNode.id = "01";
aNode.name = "孩子结点2";
aNode.children = null;
aNode = new Node();
nodesChildren.addItem(aNode);
//孩子结点数据准备完毕
//准备父节点数据
aNode.id = "0";
aNode.name = "父结点1";
aNode.children = nodesChildren; //在这里将父节点的孩子结点数据加进去
nodes.addItem(aNode);
aNode.id = "1";
aNode.name = "父结点2";
aNode.children = null; //假设父节点2没有孩子结点
nodes.addItem(aNode);
//父节点数据准备完毕
//实例化一棵树
var exampleTree:Tree = new Tree();
exampleTree.dataprovider = nodes; //在这里将第一层树结点数据源绑定到树上
到这里采用集合做为数据源的树就能够显示出来了,界面例子就不贴上了