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 ); 
}