URL 上のファイルまたはデータを表すファイルプロミスオブジェクトの作成には、URLFilePromise クラスを使用します。
FILE_PROMISE_LIST
クリップボード形式を使用して、1 つまたは複数のファイルプロミスオブジェクトをクリップボードに追加します。次の例では、http://www.example.com/foo.txt にある単一のファイルがダウンロードされ、ドロップ位置に bar.txt という名前で保存されます。リモートとローカルのファイル名を一致させる必要はありません。
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 );
}
クリップボードに割り当てられている配列にファイルプロミスオブジェクトをさらに追加すると、一度に複数のファイルをドラッグできます。また、
relativePath
プロパティでサブディレクトリを指定して、操作に含まれているファイルの一部または全部をドロップ位置と相対的なサブフォルダーに配置することもできます。
次の例は、複数のファイルプロミスを含むドラッグ操作の開始方法を示しています。この例では、html ページ
article.html
が、2 つのリンクされたイメージファイルと共にファイルプロミスとしてクリップボードに配置されます。イメージは
images
サブフォルダーにコピーされ、相対リンクが維持されます。
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 );
}