您的位置:首页 > 其它

基于ArrayCollection的flex tree

2013-12-05 22:57 225 查看
基于ArrayCollection 灵活加载后台代码方便快捷的显示tree,内容包括界面和TreeDataFormat类

界面

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"

creationComplete="init(event)">

<fx:Declarations>

<!-- 将非可视元素(例如服务、值对象)放在此处 -->

</fx:Declarations>

<fx:Script>

<![CDATA[

import flashx.textLayout.events.DamageEvent;

import mx.collections.ArrayCollection;

import mx.events.FlexEvent;

private var data:ArrayCollection=new ArrayCollection([

{id:'010',name:'角色树',parentid:'0'},

{id:'020',name:"用户树",parentid:'0'},

{id:'010010',name:"管理员",parentid:'010'},

{id:'010010010',name:"系统管理员",parentid:'010010'},

{id:'010010020',name:"用户管理员",parentid:'010010'},

{id:'020010',name:"老婆",parentid:'020'},

{id:'020020',name:'情人',parentid:'020'}

]);

private function init(event:FlexEvent):void{

var root:Object=new Object();

root.id="0";

root.name="我的树";

var tdf:TreeDataFormat=new TreeDataFormat(data);

tree.dataProvider=tdf.getTreeData(root);

}

]]>

</fx:Script>

<mx:Tree id="tree" x="211" y="106" width="200" labelField="name" height="400"></mx:Tree>

</s:Application>

TreeDataFormat类

package

{

import mx.collections.ArrayCollection;

public class TreeDataFormat

{

private var data:ArrayCollection;

public function TreeDataFormat(data:ArrayCollection)

{

this.data=data;

}

public function getTreeData(obj:Object):Object{

for each(var d:Object in data){

if(d.parentid==obj.id){

getTreeData(d);

if(obj.children==null){

obj.children=new ArrayCollection();

}

obj.children.addItem(d);

}

}

return obj;

}

}

}

实现效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: