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