Verwenden Sie die URLFilePromise-Klasse zum Erstellen von Dateizusagenobjekten für Dateien oder Daten, die an einer URL zur Verfügung stehen. Fügen Sie der Zwischenablage mit dem Zwischenablageformat
FILE_PROMISE_LIST
mindestens ein Dateizusagenobjekt hinzu. Im folgenden Beispiel wird eine einzelne Datei, die unter http://www.example.com/foo.txt zur Verfügung steht, heruntergeladen und als „bar.txt“ am Ablageort gespeichert. (Die Name der Remote-Datei muss nicht mit dem Namen der lokalen Datei übereinstimmen.)
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 );
}
Sie können dem Anwender die Möglichkeit geben, mehrere Dateien gleichzeitig zu ziehen; dazu fügen Sie dem Array, das der Zwischenablage zugewiesen ist, mehrere Dateizusagenobjekte hinzu. Außerdem können Sie für die
relativePath
-Eigenschaft Unterverzeichnisse angeben, damit einige oder alle Dateien in einem Unterordner relativ zum Ablageort platziert werden.
Im folgenden Beispiel wird gezeigt, wie eine Ziehoperation mit mehreren Dateizusagen eingeleitet wird. In diesem Beispiel wird die HTML-Seite
article.html
zusammen mit ihren beiden verknüpften Bilddateien als Dateizusage in die Zwischenablage platziert. Die Bilder werden in den Unterordner
images
kopiert, sodass die relativen Hyperlinks beibehalten werden.
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 );
}