Använd klassen URLFilePromise om du vill skapa fillöftesobjekt som representerar filer eller data som finns på en URL. Lägg till ett eller flera fillöftesobjekt i Urklipp med hjälp av urklippsformatet
FILE_PROMISE_LIST
. I följande exempel hämtas en enskild fil och sparas som bar.txt på platsen där den släpps. Filen finns på http://www.example.com/foo.txt. (Namnet på fjärrfilen behöver inte stämma överens med namnet på den lokala filen.)
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 );
}
Du kan tillåta användaren att dra mer än en fil i taget genom att lägga till fler fillöftesobjekt i den array som är kopplad till Urklipp. Du kan också ange underkataloger i egenskapen
relativePath
så att vissa eller alla filer som omfattas av åtgärden placeras i en undermapp beroende på var de släpps.
Följande exempel visar hur en dra-åtgärd som omfattar flera fillöften ska initieras. I det här exemplet placeras HTML-sidan
article.html
i Urklipp som ett fillöfte tillsammans med två länkade bildfiler. Bilderna kopieras till undermappen
images
för att relativa länkar ska bevaras.
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 );
}