Quando um usuário arrasta um item da área de transferência para dentro dos limites de um componente visual, o componente despacha eventos nativeDragEnter e nativeDragOver. Para determinar se o componente pode aceitar o item da área de transferência, os manipuladores para esses eventos pode verificar as propriedades clipboard e allowedActions do objeto de evento. Para sinalizar que o componente pode aceitar a ação de soltar, o manipulador de eventos deve chamar o método NativeDragManager.acceptDragDrop(), transmitindo uma referência ao componente receptor. Se mais de um ouvinte de evento registrado chamar o método acceptDragDrop(), o último manipulador da lista tem precedência. A chamada acceptDragDrop() permanece válida até que o mouse deixe os limites do objeto recebedor, disparando o evento nativeDragExit.
Se mais de uma ação for permitida no parâmetro allowedActions transmitido a doDrag(), o usuário pode indicar qual das ações permitidas pretende mantendo pressionada uma tecla de modificador. O gerente de arrastar altera a imagem do cursor para dizer ao usuário que ação ocorreria se ele concluísse a ação de soltar. A ação pretendida é reportado pela propriedade dropAction do evento NativeDragEvent. O conjunto de ação para um gesto de arrastar é apenas consultivo. Os componentes envolvidos na transferência devem implementar o comportamento apropriado. Para completar uma ação de mover, por exemplo, o iniciador de arrastar poderia remover o item arrastado e o destino de soltar poderia adicioná-lo.
Seu destino de arrastar pode limitar a ação de soltar para uma das três ações possíveis definindo a propriedade dropAction da classe NativeDragManager. Se um usuário tenta escolher uma ação diferente usando o teclado, NativeDragManager exibe o cursor unavailable. Define a propriedade dropAction nos manipuladores para os eventos nativeDragEnter e nativeDragOver.
O exemplo a seguir ilustra um manipulador de eventos para um evento nativeDragEnter ou nativeDragOver. Esse manipulador aceita apenas um gesto de arrastar para dentro se a área de transferência sendo arrastada contiver dados em formato de texto.
import flash.desktop.NativeDragManager;
import flash.events.NativeDragEvent;
public function onDragIn(event:NativeDragEvent):void{
NativeDragManager.dropAction = NativeDragActions.MOVE;
if(event.clipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){
NativeDragManager.acceptDragDrop(this); //'this' is the receiving component
}
}