Trascinamento di file remoti

Adobe AIR 2 e versioni successive

Utilizzate la classe URLFilePromise per creare oggetti promessa di file che rappresentano file o dati disponibili a livello di un URL. Aggiungete uno o più oggetti promessa di file agli Appunti utilizzando il formato degli Appunti FILE_PROMISE_LIST . Nell'esempio seguente, un singolo file, disponibile all'indirizzo http://www.example.com/foo.txt, viene scaricato e salvato nella posizione di rilascio come bar.txt. (I nomi dei file remoto e locale non devono corrispondere.)

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

Potete consentire all'utente di trascinare più file contemporaneamente aggiungendo più oggetti promesse di file all'array assegnato agli Appunti. Potete anche specificare delle sottodirectory nella proprietà relativePath in modo che alcuni o tutti i file inclusi nell'operazione vengano salvati in una sottocartella relativa alla posizione di rilascio.

Nell'esempio seguente viene illustrato come iniziare un'operazione di trascinamento che include più promesse di file. In questo esempio, una pagina HTML, article.html , è inserita negli Appunti come una promessa di file, insieme ai suoi due file immagine collegati. Le immagini vengono copiate in una sottocartella images in modo che i collegamenti relativi siano mantenuti.

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