Pacote | flash.desktop |
Interface | public interface IFilePromise |
Implementadores | MediaPromise, URLFilePromise |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
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 fora de um aplicativo de AIR. O AIR usa os métodos e propriedades definidos pela interface do IFilePromise para acessar os dados a serem gravados quando a promessa de arquivo é solta.
Quando uma promessa de arquivo é solta em um destino adequado, o AIR chama o método open()
IFilePromise. A implementação deste método deve retornar o provedor de dados como um objeto que implementa a interface de IDataInput. O objeto do provedor pode ser uma das classes embutidas, como ByteArray, FileStream, Soquete e URLStream, ou pode ser uma classe personalizada.
Se os dados do provedor de dados forem acessados sincronicamente, como com um ByteArray, o AIR lê a quantidade de dados indicados pela propriedade bytesAvailable
do IDataInput e grava-o no arquivo de destino.
Se os dados do provedor de dados forem acessados assincronamente, como com um Socket, o AIR usa eventos despachados pelo provedor para regular o processo de ler os dados e gravá-los no arquivo. Os dados são lidos em cada evento de progresso até que um evento completo ou fechado seja recebido. O tempo de execução escuta os seguintes eventos (mas um provedor de dados não precisa enviar cada evento):
- Event.OPEN
- ProgressEvent.PROGRESS
- ProgressEvent.SOCKET_DATA
- Event.COMPLETE
- Event.CLOSE
- IOErrorEvent.IOERROR
- SecurityErrorEvent.SECURITY_ERROR
- HTTPStatusEvent.HTTP_STATUS
- HTTPStatusEvent.HTTP_RESPONSE_STATUS
As classes de provedor de dados personalizadas devem despachar um evento progress
ou um evento socketData
quando os dados estiverem disponíveis. Da mesma maneira, um evento complete
ou close
deve ser despachado quando todos os dados solicitados forem lidos. Os eventos de erro informam ao tempo de execução que a transferência de dados falhou e deve ser abortada. Outros eventos devem ser despachados como apropriados para ajudar no controle de erros e na depuração de lógicos do aplicativos.
Os métodos definidos por IFilePromise só são destinados para serem chamados pelo tempo de execução de AIR depois que uma operação de arrastar e soltar esteja concluída. Os desenvolvedores não devem chamar normalmente estes métodos do seu próprio código.
Observação: a classe URLFilePromise, disponível na biblioteca air.desktop, implementa a interface IFilePromise e usa URLStream como provedor de dados. A biblioteca air.desktop está incluída como arquivos SWF e SWC separados no AIR SDK.
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
isAsync : Boolean [somente leitura]
Indica se a transferência de dados assíncrona é suportada. | IFilePromise | ||
relativePath : String [somente leitura]
O caminho relativo e o nome do arquivo que será criado por esta promessa de arquivo. | IFilePromise |
Método | Definido por | ||
---|---|---|---|
Chamado pelo tempo de execução de AIR quando ele terminou de ler todos os dados. | IFilePromise | ||
Retorna o objeto de provedor de dados. | IFilePromise | ||
chamado pelo tempo de execução de AIR para informar a implementação IFilePromise de erros que ocorrem lendo dados no objeto de provedor de dados. | IFilePromise |
isAsync | propriedade |
isAsync:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
Indica se a transferência de dados assíncrona é suportada.
Se true
, então o objeto de provedor de dados retornado pelo método open()
deve implementar a interface de IEventDispatcher (ou estender uma classe que implementa esta interface). A transferência de dados é dirigida pelos eventos progress
ou socketData
. O AIR espera por estes eventos de progresso de dados até que um evento complete
ou close
seja despachado.
Se isAsync
retornar falso, então o tempo de execução de AIR supõe que todos os dados estejam disponíveis imediatamente. Neste caso, o tempo de execução lê a propriedade bytesAvailable
do objeto de provedor de dados para determinar a quantidade de dados disponíveis e sincronicamente lê essa quantidade de dados.
Implementação
public function get isAsync():Boolean
relativePath | propriedade |
relativePath:String
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
O caminho relativo e o nome do arquivo que será criado por esta promessa de arquivo.
Esta propriedade deve fornecer um caminho válido ou um erro de argumento é lançado quando a promessa de arquivo é solta.
O caminho pode incluir subdiretórios, que são resolvidos com base no local onde foi solto. Os subdiretórios são criados, se necessário. Quando incluir subdiretórios, use a constante File.separator
para inserir o caractere separador de caminho próprio do sistema operacional atual. Usar o cabeçalho .. atalho para navegar a um diretório-pai não é permitido. Um erro de argumento é lançado se houver uma tentativa. O caminho é removido dos caracteres de sistema de arquivos inválidos sem lançar um erro.
Observação: Para permitir que o código do cliente estabeleça o caminho, você pode implementar uma função setter com a assinatura: conjunto de funções relativePath (value:String):void
.
Implementação
public function get relativePath():String
Lança
ArgumentError — se o caminho relativo usa .. atalhos para atravessar um ou vários diretórios pais do destino da ação de soltar.
|
close | () | método |
public function close():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
Chamado pelo tempo de execução de AIR quando ele terminou de ler todos os dados.
Nenhum método será chamado na referência do objeto retornada pelo open()
depois que close()
for chamado. O objeto de provedor de dados pode ser destruído com segurança.
open | () | método |
public function open():IDataInput
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
Retorna o objeto de provedor de dados.
O objeto de provedor de dados deve implementar a interface de IDataInput, que define métodos para ler dados. Se a propriedade isAsync
de IFilePromise retornar true
, então o objeto de provedor de dados também deve implementar a interface de IEventDispatcher. As seguintes classes embutidas podem ser usadas como um provedor de dados:
- ByteArray (síncrono)
- FileStream (síncrono ou assíncrono)
- Socket (assíncrono)
- URLStream (assíncrono)
Você também pode fornecer um objeto de uma classe personalizada que implementa as interfaces necessárias (ou estende outra classe que os implementa).
RetornaIDataInput — IDataInput um objeto que implementa a interface de IDataInput. Se o dado for fornecido assincronamente, o objeto devolvido também deve implementar a interface de IEventDispatcher.
|
reportError | () | método |
public function reportError(e:ErrorEvent):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2 |
chamado pelo tempo de execução de AIR para informar a implementação IFilePromise de erros que ocorrem lendo dados no objeto de provedor de dados.
Parâmetros
e:ErrorEvent — O evento de erro que contém informações detalhadas sobre o erro.
|
Wed Jun 13 2018, 11:10 AM Z