I have been able to drag components from one canvas to the other but 
the problem is that i want it to be a COPY operation and not a MOVE 
operation i.e the component that i am dragging from the source is not 
delete there. I have written my own DragComplete event handler, but 
still it does a Move Operation.Can anyone help with the dragComplete 
event handler.

Regards,
Desigaine

<?xml version="1.0" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; 
layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.managers.DragManager;
            import mx.core.DragSource;
            import mx.events.DragEvent;
            import flash.events.MouseEvent;
            import mx.containers.Canvas;

            private function dragMe(event:MouseEvent, 
bt1:Button,format:String):void             {     
                var dragInitiator:Button=Button(event.currentTarget);
                var ds:DragSource = new DragSource();   
                ds.addData(bt1, format); 
                DragManager.doDrag(dragInitiator, ds, 
event,null,0.0,0.0,0.5,true);
            }

        private function doDragEnter(event:DragEvent):void {
            var dropTarget:Canvas=Canvas(event.currentTarget);
            if (event.dragSource.hasFormat('cmd')) {
                DragManager.acceptDragDrop(dropTarget);
            }
        }
     
    private function doDragDrop(event:DragEvent):void {        
            var data:Object = event.dragSource.dataForFormat('cmd');
            myCanvas.addChild(data as DisplayObject);
            
}

public function doDragComplete(event:DragEvent):void{
     if (DragManager.getFeedback() == DragManager.COPY) {
        //need to implement this handler
    }
   
}

private function doDragOver(event:DragEvent):void {
    if (event.dragInitiator is Button)
    {    
    DragManager.showFeedback(DragManager.COPY);
    }
}   
        ]]>
    </mx:Script>

   <mx:Canvas  id="v1" width="118" height="162" borderStyle="solid" 
backgroundColor="#DDDDDD" x="0" y="0">
   <mx:Button dragComplete="doDragComplete(event)" x="10" y="10" 
label="Button" id="bt" mouseMove="dragMe(event,bt,'cmd')"/>
   </mx:Canvas>
   <mx:Canvas  x="213" y="0" width="157" height="162" 
dragDrop="doDragDrop(event)"  dragOver="doDragOver(event)" 
dragEnter="doDragEnter(event);"  id="myCanvas" 
backgroundColor="#ffffff">
   </mx:Canvas>
</mx:Application>

Reply via email to