Utilice la clase URLFilePromise para crear objetos de promesa de archivo que representen archivos o datos disponibles en una URL. Añada uno o varios objetos de promesa de archivo al portapapeles utilizando el formato del portapapeles
FILE_PROMISE_LIST
. En el siguiente ejemplo, un solo archivo, disponible en http://www.example.com/foo.txt, se descarga y se guarda en la ubicación de destino como bar.txt. (Los nombres de archivo local y remoto no tienen que coincidir.)
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 );
}
Se puede permitir al usuario que arrastre varios archivos a la vez añadiendo más objetos de promesa de archivo al conjunto asignado al portapapeles. También se pueden especificar subdirectorios en la propiedad
relativePath
de modo que algunos o todos los archivos incluidos en la operación se coloquen en una subcarpeta relativa a la ubicación de destino.
En el siguiente ejemplo se muestra cómo iniciar una operación de arrastrar que incluye varias promesas de archivo. En este ejemplo, una página html,
article.html
, se sitúa en el portapapeles como promesa de archivo, junto con sus dos archivos de imagen vinculados. Las imágenes se copian en una subcarpeta
images
de modo que se mantengan los vínculos relativos.
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 );
}