Flash AS3 XML Tree组件
来源:互联网 发布:windows cmd ls 编辑:程序博客网 时间:2024/06/05 09:45
生成上面树的XML:
<root>
<leafs mark="普通用户d">
<ID>20120804071540</ID>
<parentID/>
<name>普通用户d</name>
<leaf mark="用户组1">
<ID>20120804071541</ID>
<parentID>20120804071540</parentID>
<name>用户组1</name>
</leaf>
<leaf mark="用户组2">
<ID>20120804071542</ID>
<parentID>20120804071540</parentID>
<name>用户组2</name>
</leaf>
</leafs>
<leaf mark="管理员">
<ID>20120804072044</ID>
<parentID/>
<name>管理员</name>
</leaf>
</root>
树节点组件代码:
package com.control
{
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.text.TextField;
import flash.events.*;
import flash.geom.Matrix;
public class xmlTreeNode extends MovieClip
{
private var g:Graphics;
private var gaps:Number=20;
private var childNodes:Array=[];
private var nodeCount:int=0;
private var txt:TextField=new TextField;
//标记
private var _mark:MovieClip=new MovieClip;
public function get mark():MovieClip
{
return _mark;
}
//标签
private var _nodeBody:MovieClip=new MovieClip;
public function get body():MovieClip
{
return _nodeBody;
}
//数据
private var _nodeData:XML=null;
public function get nodeData():XML
{
return _nodeData;
}
public function set nodeData(v:XML):void
{
_nodeData=v;
drawChart(_nodeData);
}
//多选
private var _multipleSelect:Boolean=false;
public function set multipleSelect(v:Boolean):void
{
_multipleSelect=v;
}
//是否展开
private var _spread:Boolean=false;
public function get spread():Boolean
{
return _spread;
}
public function set spread(v:Boolean):void
{
_spread=v;
refreshMark();
}
//是否是复杂节点
private var _hasChildren:Boolean=false;
public function get hasChildren():Boolean
{
return _hasChildren;
}
public function set hasChildren(v:Boolean):void
{
_hasChildren=v;
refreshMark();
}
//自己的ID
private var _ID:int=0;
public function get ID():int
{
return _ID;
}
public function set ID(v:int):void
{
_ID=v;
}
//父节点ID
private var _parentId:int=-1;
public function get parentId():int
{
return _parentId;
}
public function set parentId(v:int):void
{
_parentId=v;
}
//父节点
private var _parentMc:MovieClip=null;
public function get parentMc():MovieClip
{
return _parentMc;
}
public function set parentMc(v:MovieClip):void
{
_parentMc=v;
}
//是否选中
private var _selected:Boolean=false;
public function get selected():Boolean
{
return _selected;
}
public function set selected(v:Boolean):void
{
_selected=v;
if(_selected)
{
txt.htmlText=""+txt.text+"";
}
else
{