2011-03-06 40 views
2

我期待在flex中实现拖放功能。我已经能够做到这一点通过拖动管理仅拖放复制vs移动

Drag and drop examples

只有我需要的是稍微不同 - 我想拖动对象的副本放置,而不是原来的对象。任何指导如何使这成为可能。

另外,我想为这个被放置的对象进行动态创建。谢谢

回答

3

dragDropHandler调用event.preventDefault() - 这将禁用默认放弃逻辑,包括从源集合中删除对象并将其添加到目标集合。然后添加你的逻辑。

0

您可以覆盖所有拖动处理程序为:

override protected function dragEnterHandler(event:DragEvent):void{ 
     if(event.action == DragManager.MOVE) 
      event.action=DragManager.COPY; 
     super.dragEnterHandler(event); 
    } 

    override protected function dragCompleteHandler(event:DragEvent):void{ 
     if(event.action == DragManager.MOVE) 
      event.action=DragManager.COPY; 
     super.dragCompleteHandler(event); 
    } 

    override protected function dragDropHandler(event:DragEvent):void{ 
     if(event.action == DragManager.MOVE) 
      event.action=DragManager.COPY; 
     super.dragDropHandler(event); 
    } 

    override protected function dragExitHandler(event:DragEvent):void{ 
     if(event.action == DragManager.MOVE) 
      event.action=DragManager.COPY; 
     super.dragExitHandler(event); 
    } 

    override protected function dragOverHandler(event:DragEvent):void{ 
     if(event.action == DragManager.MOVE) 
      event.action=DragManager.COPY; 
     super.dragOverHandler(event); 
    } 

    override protected function dragStartHandler(event:DragEvent):void{ 
     if(event.action == DragManager.MOVE) 
      event.action=DragManager.COPY; 
     super.dragStartHandler(event); 
    }