Soltando promessas de arquivo

Adobe AIR 2 e posterior

Uma promessa de arquivo é um formato de área de transferência de arrastar e soltar que permite que um usuário arraste um arquivo que ainda não existe para fora de um aplicativo do AIR. Por exemplo, usando as promessas de arquivo, seu aplicativo poderia permitir que um usuário arraste um ícone de proxy para uma pasta do computador. O ícone de proxy representa um arquivo ou alguns dados conhecidos que estão disponíveis em um URL. Depois que o usuário solta o ícone, o tempo de execução baixa os dados e escreve o arquivo no local em que foi solto.

Você pode usar a classe URLFilePromise em um aplicativo do AIR para arrastar e soltar arquivos acessíveis em um URL. A implementação do URLFilePromise é fornecido na biblioteca do aircore como parte do SDK do AIR 2. Utilize o arquivo aircore.swc ou o aircore.swf encontrados no diretório frameworks/libs/air.

Alternativamente, você pode implementar sua própria lógica de promessa de arquivo utilizando a interface IFilePromise (que é definida no pacote flash.desktop do tempo de execução).

As promessas de arquivo são semelhantes em conceito à renderização adiada usando uma função de tratamento de dados na área de transferência. Use as promessas de arquivo em vez da renderização adiada ao arrastar e soltar os arquivos. A técnica de renderização adiada pode levar a pausas indesejáveis no gesto de arrastar à medida que os dados são gerados ou baixados. Use a renderização adiada para as operações de copiar e colar (para as quais as promessas do arquivo não recebem suporte).

Limitações ao usar as promessas de arquivo

As promessas de arquivo têm as seguintes limitações em comparação com outros formatos de dados que você pode colocar em uma área de transferência de arrastar e soltar:

  • As promessas de arquivo só podem ser arrastadas para fora de um aplicativo do AIR, não podendo ser soltas em um arquivo AIR.

  • As promessas de arquivo não recebem suporte em todos os sistemas operacionais. Use a propriedade Clipboard.supportsFilePromise para testar se as promessas de arquivo recebem suporte no sistema de host. Nos sistemas que não oferecem suporte às promessas de arquivo, forneça um mecanismo alternativo para baixar ou gerar os dados do arquivo.

  • As promessas de arquivo não podem ser usadas com a área de transferência de copiar e colar ( Clipboard.generalClipboard ).