La classe URLFilePromise permet de créer des objets de fichiers promis représentant les fichiers ou données disponibles à partir d’une URL. Ajoutez un ou plusieurs objets de fichiers promis au Presse-papiers en faisant appel au format de Presse-papiers
FILE_PROMISE_LIST
. Dans l’exemple suivant, un fichier unique, disponible à l’adresse http://www.example.com/foo.txt, est téléchargé et enregistré à l’emplacement de dépôt sous le nom bar.txt. (Le nom du fichier distant et celui du fichier local ne sont pas nécessairement identiques.)
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 );
}
Vous pouvez autoriser l’utilisateur à faire glisser simultanément plusieurs fichiers en ajoutant d’autres objets de fichiers promis au tableau affecté au Presse-papiers. Vous pouvez également définir des sous-répertoires dans la propriété
relativePath
de sorte que certains ou la totalité des fichiers concernés par l’opération soient placés dans un sous-répertoire relatif à l’emplacement du dépôt.
L’exemple suivant illustre la procédure de lancement d’une opération de dépôt qui inclut plusieurs fichiers promis. Dans cet exemple, une page html,
article.html
, est placée dans le Presse-papiers en tant que fichier promis, accompagnée des deux fichiers d’images liés correspondants. Les images sont copiées dans un sous-dossier
images
afin de conserver les liens relatifs.
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 );
}