flex的tree之间拖动

//tree的XML内容
var company:XML =
<list>
<department title="Finance" code="200">
<employee name="John H" />
<employee name="Sam K" />
</department>
<department title="Engineering" code="300">
<employee name="Erin M" />
<employee name="Ann B" />
</department>
<department title="Operations" code="400" isBranch="true" />
</list>

//treeLabel,在tree控件的属性中指定,可以根据解析XML的内容显示所需节点
private function treeLabel( item:Object ) : String
{
var node:XML = XML(item);
if( node.localName() == "department" )
return node.@title;
else
return node.@name;
}
//绑定tree的dataProvider
[Bindable]
var companyList:XMLListCollection = new XMLListCollection( company.department );

//tree控件
<mx:Tree x="83" y="25" width="225" id="tree" height="307" labelFunction="treeLabel"
dataProvider="{companyList}" dragEnabled="true" dropEnabled="false"
dragEnter="onDragEnter(event)" dragDrop="onDragDrop(event)"></mx:Tree>

//事件onDragEnter
private function onDragEnter(event: DragEvent): void{
DragManager.acceptDragDrop(UIComponent(event.currentTarget));
}


//事件onDragDrop
//注意:("treeItems") 为tree控件默认的可以获取items的值
private function onDragDrop(event: DragEvent): void{
var ds: DragSource = event.dragSource;
var dropTarget: Tree = Tree(event.currentTarget);
var items: Array = ds.dataForFormat("treeItems") as Array;
var r: int = dropTarget.calculateDropIndex(event);
tree.selectedIndex = r;
var node: XML = tree.selectedItem as XML;
trace(node.@title);
for(var i:Number=0;i<items.length;i++){
var item:XML = items[i] as XML;
trace(items[i]);
trace("title:"+item.@name);
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值