Externe bestanden neerzetten

Adobe AIR 2 of hoger

Gebruik de URLFilePromise-klasse om bestandsbelofteobjecten te maken die via een URL beschikbare bestanden of gegevens representeren. Met de klembordindeling FILE_PROMISE_LIST voegt u een of meer bestandsbelofteobjecten toe aan het klembord. In het volgende voorbeeld wordt een bestand dat beschikbaar is via http://www.example.com/foo.txt, gedownload en opgeslagen als bar.txt op de locatie waar de bestandsbelofte is neergezet. (De namen van het externe bestand en het lokale bestand hoeven niet hetzelfde te zijn.)

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

U kunt de gebruiker toestaan om meer dan een bestand tegelijkertijd te slepen door bestandsbelofteobjecten toe te voegen aan de array die aan het klembord is toegewezen. U kunt ook submappen opgeven in de eigenschap relativePath zodat sommige of alle bestanden die deel uitmaken van de bewerking, in een submap worden geplaatst die relatief is aan de locatie waar de bestandsbelofte is neergezet.

Het volgende voorbeeld illustreert hoe u een sleepbewerking met meerdere bestandsbeloften kunt uitvoeren. In dit voorbeeld wordt de HTML-pagina article.html als bestandsbelofte op het klembord geplaatst, evenals twee bijbehorende gekoppelde afbeeldingsbestanden. De afbeeldingen worden gekopieerd naar een submap images , zodat de relatieve koppelingen behouden blijven.

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