Släppa fjärrfiler

Adobe AIR 2 och senare

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