Pacchetto | flash.desktop |
Interfaccia | public interface IFilePromise |
Implementatori | MediaPromise, URLFilePromise |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
Una "promessa" di file è un formato di trascinamento degli Appunti che consente all'utente di trascinare un file che ancora non esiste al di fuori di un'applicazione AIR. In AIR vengono utilizzati metodi e proprietà definiti dall'interfaccia IFilePromise per accedere ai dati che dovranno essere scritti quando la "promessa" di file viene rilasciata.
Quando una "promessa" di file viene rilasciata su una destinazione appropriata, AIR chiama il metodo open()
di IFilePromise. L'implementazione di questo metodo deve restituire il fornitore di dati come oggetto che implementa l'interfaccia IDataInput. L'oggetto provider può essere una delle classi incorporate, ad esempio ByteArray, FileStream, Socket e URLStream, oppure una classe personalizzata.
Se accedete ai dati del fornitore di dati in modalità sincrona, ad esempio con ByteArray, AIR legge la quantità di dati indicata dalla proprietà bytesAvailable
di IDataInput e scrive tali dati nel file di destinazione.
Se accedete ai dati del fornitore di dati in modalità asincrona, ad esempio con Socket, AIR utilizza gli eventi inviati dal fornitore di dati per regolare il processo di lettura dei dati e di scrittura nel file. I dati vengono letti in ogni evento progress finché non viene ricevuto un evento complete o close. Il runtime intercetta i seguenti eventi (ma un fornitore di dati non deve necessariamente inviare ogni evento):
- Event.OPEN
- ProgressEvent.PROGRESS
- ProgressEvent.SOCKET_DATA
- Event.COMPLETE
- Event.CLOSE
- IOErrorEvent.IOERROR
- SecurityErrorEvent.SECURITY_ERROR
- HTTPStatusEvent.HTTP_STATUS
- HTTPStatusEvent.HTTP_RESPONSE_STATUS
Le classi del fornitore di dati personalizzato dovranno inviare un evento progress
o socketData
quando i dati sono disponibili. In modo analogo, una volta completata la lettura di tutti i dati, dovrà essere inviato un evento complete
o close
. Gli eventi di errore informano il runtime che il trasferimento dei dati non è riuscito e che dovrà essere annullato. Gli altri eventi dovranno essere inviati, se necessario, per facilitare la gestione degli errori e il debug della logica dell'applicazione.
I metodi definiti da IFilePromise vengono chiamati solo dal runtime AIR dopo il completamento di un'operazione di trascinamento. Solitamente gli sviluppatori non devono chiamare questi metodi dal proprio codice.
Nota: la classe URLFilePromise, disponibile nella libreria air.desktop, implementa l'interfaccia IFilePromise e utilizza URLStream come fornitore di dati. La libreria air.desktop è inclusa sotto forma di file SWF e SWC distinti nell'SDK AIR.
Altri esempi
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
isAsync : Boolean [sola lettura]
Indica se è supportato il trasferimento dei dati in modalità asincrona. | IFilePromise | ||
relativePath : String [sola lettura]
Specifica il percorso relativo e il nome file del file che verrà creato da questa promessa di file. | IFilePromise |
Metodo | Definito da | ||
---|---|---|---|
Chiamato dal runtime AIR al termine della lettura di tutti i dati. | IFilePromise | ||
Restituisce l'oggetto fornitore di dati. | IFilePromise | ||
Chiamato dal runtime AIR per fornire all'implementazione di IFilePromise informazioni sugli errori che si verificano durante la lettura dei dati dall'oggetto fornitore di dati. | IFilePromise |
isAsync | proprietà |
isAsync:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
Indica se è supportato il trasferimento dei dati in modalità asincrona.
Se true
, l'oggetto fornitore di dati restituito dal metodo open()
deve implementare l'interfaccia IEventDispatcher (oppure estendere una classe che la implementi). Il trasferimento di dati è controllato dall'evento progress
o socketData
. AIR attende questi eventi di avanzamento dei dati finché non viene inviato un evento complete
o close
.
Se isAsync
restituisce false, il runtime AIR considera tutti i dati immediatamente disponibili. In tal caso, il runtime legge la proprietà bytesAvailable
dell'oggetto fornitore di dati per determinare la quantità di dati disponibili e li legge in modalità sincrona.
Implementazione
public function get isAsync():Boolean
relativePath | proprietà |
relativePath:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
Specifica il percorso relativo e il nome file del file che verrà creato da questa promessa di file.
Questa proprietà deve fornire un percorso valido. In caso contrario viene generato un ArgumentError quando la "promessa" di file viene rilasciata.
Il percorso può includere delle sottodirectory, che vengono risolte in base alla posizione di rilascio. Le sottodirectory vengono create, se necessario. Se includete delle sottodirectory, utilizzate la costante File.separator
per inserire il carattere separatore di percorso appropriato per il sistema operativo corrente. L'utilizzo della scorciatoia .. per spostarsi a una directory principale non è consentito. Se viene tentato, si genera un errore. I caratteri non validi nel file system vengono rimossi dal percorso senza generare un errore.
Nota: per consentire al codice del client di impostare il percorso, potete implementare una funzione setter con la firma: function set relativePath( value:String ):void
.
Implementazione
public function get relativePath():String
Genera
ArgumentError — se il percorso relativa usa scorciatoie .. per attraversare una o più directory di livello superiore della destinazione di rilascio.
|
close | () | metodo |
public function close():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
Chiamato dal runtime AIR al termine della lettura di tutti i dati.
Nessun metodo viene chiamato sul riferimento all'oggetto restituito da open()
dopo la chiamata a close()
. L'oggetto fornitore di dati può essere eliminato senza problemi.
open | () | metodo |
public function open():IDataInput
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
Restituisce l'oggetto fornitore di dati.
L'oggetto fornitore dati deve implementare l'interfaccia IDataInput, che definisce i metodi per la lettura dei dati. Se la proprietà isAsync
di IFilePromise restituisce true
, l'oggetto fornitore di dati deve implementare anche l'interfaccia IEventDispatcher. Le seguenti classi incorporate possono essere utilizzate come fornitore di dati:
- ByteArray (sincrona)
- FileStream (sincrona o asincrona)
- Socket (sincrona)
- URLStream (asincrona)
Potete inoltre fornire un oggetto di una classe personalizzata che implementi le interfacce necessarie (oppure estendere un'altra classe che le implementi).
RestituisceIDataInput — IDataInput Un oggetto che implementa l'interfaccia IDataInput. Se i dati vengono forniti in modo asincrono, l'oggetto restituito deve implementare anche l'interfaccia IEventDispatcher.
|
reportError | () | metodo |
public function reportError(e:ErrorEvent):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2 |
Chiamato dal runtime AIR per fornire all'implementazione di IFilePromise informazioni sugli errori che si verificano durante la lettura dei dati dall'oggetto fornitore di dati.
Parametri
e:ErrorEvent — L'evento di errore contenente informazioni dettagliate sull'errore.
|
Tue Jun 12 2018, 02:44 PM Z