Soltando arquivos remotosAdobe AIR 2 e posterior Use a classe URLFilePromise para criar objetos de promessa de arquivo que representam arquivos ou dados disponíveis em um URL. Acrescente um ou mais objetos de promessa de arquivo à área de transferência usando o formato FILE_PROMISE_LIST da área. No exemplo a seguir, um arquivo único, disponível em http://www.example.com/foo.txt, é baixado e salvo no local em que será solto como bar.txt. (Os nomes do arquivo remoto e local não precisam 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 );
}
Você pode permitir que o usuário arraste mais de um arquivo por vez acrescentando mais objetos de promessa de arquivo à matriz atribuída à área de transferência. Também é possível especificar os subdiretórios na propriedade relativePath, de forma que alguns ou todos os arquivos incluídos na operação sejam colocados em uma subpasta relativa ao local em que ele será solto. O exemplo a seguir ilustra como iniciar uma operação de soltar que inclui múltiplas promessas de arquivo. Neste exemplo, uma página html, article.html, é colocada na área de transferência como promessa de arquivo, juntamente com seus dois arquivos de imagem vinculados. As imagens são copiadas para uma subpasta images, de forma que os links relativos sejam mantidos. 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 );
}
|
|