Перетаскивание удаленных файлов

Adobe AIR 2 и более поздних версий

Воспользуйтесь классом URLFilePromise для создания объектов предварительных образов файла, представляющих файлы или данные, которые доступны по URL. Добавьте один или несколько объектов предварительных образов файла с помощью формата буфера данных FILE_PROMISE_LIST . В следующем примере единичный файл, который доступен по адресу http://www.example.com/foo.txt, загружается и сохраняется в местоположение перетаскивания под именем bar.txt. Имена удаленного и локального файлов могут не совпадать.

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

Можно разрешить пользователю перетаскивать более одного файла за один раз путем добавления дополнительных объектов предварительных образов файла в массив, присвоенный буферу обмена. Также можно указать подкаталоги в свойстве relativePath , чтобы поместить некоторые или все включенные в операцию файлы в подпапку местоположения перетаскивания.

В следующем примере показано, как запустить операцию перетаскивания, включающую несколько предварительных образов файла. В этом примере HTML-страница article.html помещается в буфер данных в качестве предварительного образа файла вместе с двумя связанными с ней файлами изображений. Изображения копируются в подпапку images , чтобы сохранить относительные ссылки.

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