Soltando arquivos remotos

Adobe AIR 2 e posterior

Use a classe URLFilePromise para criar objetos de promessa de arquivo que representam arquivos ou dados disponíveis em um URL. Acrescente um ou mais objetos de promessa de arquivo à área de transferência usando o formato FILE_PROMISE_LIST da área. No exemplo a seguir, um arquivo único, disponível em http://www.example.com/foo.txt, é baixado e salvo no local em que será solto como bar.txt. (Os nomes do arquivo remoto e local não precisam coincidir.)

if( Clipboard.supportsFilePromise ) 
{ 
    var filePromise:URLFilePromise = new URLFilePromise(); 
    filePromise.request = new URLRequest("http://example.com/foo.txt"); 
    filePromise.relativePath = "bar.txt"; 
 
    var fileList:Array = new Array( filePromise ); 
    var clipboard:Clipboard = new Clipboard(); 
    clipboard.setData( ClipboardFormats.FILE_PROMISE_LIST_FORMAT, fileList ); 
    NativeDragManager.doDrag( dragSource, clipboard ); 
}

Você pode permitir que o usuário arraste mais de um arquivo por vez acrescentando mais objetos de promessa de arquivo à matriz atribuída à área de transferência. Também é possível especificar os subdiretórios na propriedade relativePath, de forma que alguns ou todos os arquivos incluídos na operação sejam colocados em uma subpasta relativa ao local em que ele será solto.

O exemplo a seguir ilustra como iniciar uma operação de soltar que inclui múltiplas promessas de arquivo. Neste exemplo, uma página html, article.html, é colocada na área de transferência como promessa de arquivo, juntamente com seus dois arquivos de imagem vinculados. As imagens são copiadas para uma subpasta images, de forma que os links relativos sejam mantidos.

if( Clipboard.supportsFilePromise ) 
{     //Create the promise objects 
    var filePromise:URLFilePromise = new URLFilePromise(); 
    filePromise.request = new URLRequest("http://example.com/article.html"); 
    filePromise.relativePath = "article.html"; 
 
    var image1Promise:URLFilePromise = new URLFilePromise(); 
    image1Promise.request = new URLRequest("http://example.com/images/img_1.jpg"); 
    image1Promise.relativePath = "images/img_1.html"; 
    var image2Promise:URLFilePromise = new URLFilePromise(); 
    image2Promise.request = new URLRequest("http://example.com/images/img_2.jpg"); 
    image2Promise.relativePath = "images/img_2.jpg"; 
     
 
    //Put the promise objects onto the clipboard inside an array 
    var fileList:Array = new Array( filePromise, image1Promise, image2Promise ); 
    var clipboard:Clipboard = new Clipboard(); 
    clipboard.setData( ClipboardFormats.FILE_PROMISE_LIST_FORMAT, fileList ); 
    //Start the drag operation 
    NativeDragManager.doDrag( dragSource, clipboard ); 
}