Drag drop to copy between two Lists
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp();">
<mx:Script>
import mx.events.DragEvent;
import mx.managers.DragManager;
import mx.core.DragSource;
import mx.collections.IList;
import mx.collections.ArrayCollection;
private function initApp():void {
firstList.dataProvider = new ArrayCollection([
{label:"First", data:"1"},
{label:"Second", data:"2"},
{label:"Third", data:"3"},
{label:"Fourth", data:"4"},
]);
secondList.dataProvider = new ArrayCollection([]);
}
private function dragDropHandler(event:DragEvent):void {
if (event.dragSource.hasFormat("items") ==false)
{
return;
}
event.preventDefault();
event.currentTarget.hideDropFeedback(event);
var dropTarget:List=List(event.currentTarget);
var itemsArray:Array =event.dragSource.dataForFormat("items") as Array;
var tempItem:Object ={label: itemsArray[0].label, data: itemsArray[0].data};
var dropLoc:int = dropTarget.calculateDropIndex(event);
IList(dropTarget.dataProvider).addItemAt(tempItem, dropLoc);
}
</mx:Script>
<mx:HBox>
<mx:List id="firstList" dragEnabled="true"/>
<mx:List id="secondList" dropEnabled="true" dragDrop="dragDropHandler(event);"/>
</mx:HBox>
</mx:Application>
Related examples in the same category