<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.events.DragEvent;
import mx.managers.DragManager;
import mx.core.DragSource;
import mx.collections.ArrayCollection;
import mx.core.IUIComponent;
[Bindable]
private var myListDP:ArrayCollection=new ArrayCollection();
//启动拖动事件
private function dragIt(initiator:Label,dsData:String,event:MouseEvent,format:String):void
{
//拖动的数据源
var ds:DragSource = new DragSource();
//添加拖动过程中的数据,以及确定格式
ds.addData(dsData,format);
//启动拖动事件
DragManager.doDrag(initiator,ds,event);
}
//拖动发生时候
private function doDragEnter(event:DragEvent,format:String):void
{
//判断格式是否一致
if(event.dragSource.hasFormat(format)){
//接受该拖动组件
DragManager.acceptDragDrop(IUIComponent(event.target));
}
}
//拖动事件结束
private function doDragDrop(event:DragEvent,format:String):void
{
//
var myLabelData:Object = new Object();
//接受指定格式的数据
myLabelData = event.dragSource.dataForFormat(format);
myList.dataProvider.addItem(myLabelData);
}
]]>
</mx:Script>
<mx:Label id="myLabel"
text="Drag me"
mouseDown="dragIt(myLabel,'My data here',event,'myFormat')"/>
<mx:Spacer width="20"/>
<mx:List id="myList"
width="200"
dataProvider="{myListDP}"
dragEnter="doDragEnter(event,'myFormat')"
dragDrop="doDragDrop(event,'myFormat')"/>
</mx:Application>
非默认拖动组件如何实现拖动?
最新推荐文章于 2025-07-28 10:37:53 发布