Pakket | flash.desktop |
Interface | public interface IFilePromise |
Geïmplementeerd door | MediaPromise, URLFilePromise |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Een bestandspromise is een klembordindeling voor verslepen en neerzetten, waarmee een gebruiker een bestand kan verslepen die nog niet buiten een AIR-toepassing bestaat. AIR gebruikt methoden en eigenschappen die gedefinieerd zijn door de IFilePromise-interface voor toegang tot de gegevens die geschreven moeten worden wanneer de bestandspromise wordt neergezet.
Wanneer een bestandspromise op een geschikte doellocatie wordt neergezet, roept AIR de IFilePromise-methode Open()
op. De implementatie van deze methode moet de gegevensleverancier retourneren als een object dat de IDataInput-interface implementeert. Het providerobject kan een van de ingebouwde klassen zijn, zoals ByteArray, FileStream, Socket en URLStream, of kan een aangepaste klasse zijn.
Als de gegevens van de gegevensleverancier synchroon worden geopend, zoals met een ByteArray, leest AIR de hoeveelheid gegevens die wordt aangegeven door de IDataInput-eigenschap bytesAvailable
en schrijft deze naar het doelbestand.
Als de gegevens van de gegevensleverancier asynchroon worden geopend, zoals met een Socket, gebruikt AIR gebeurtenissen die door de leverancier zijn verstuurd om het leesproces van de gegevens te regelen en deze naar het bestand te schrijven. Gegevens worden gelezen bij elke voortgangsgebeurtenis, totdat er een volledige of gesloten gebeurtenis wordt ontvangen. De runtime richt zich op de volgende gebeurtenissen (maar een gegevensaanbieder hoeft niet elke gebeurtenis te verzenden):
- Event.OPEN
- ProgressEvent.PROGRESS
- ProgressEvent.SOCKET_DATA
- Event.COMPLETE
- Event.CLOSE
- IOErrorEvent.IOERROR
- SecurityErrorEvent.SECURITY_ERROR
- HTTPStatusEvent.HTTP_STATUS
- HTTPStatusEvent.HTTP_RESPONSE_STATUS
Aangepaste klassen van gegevensleveranciers moeten een progress
-gebeurtenis of een socketData
-gebeurtenis versturen wanneer er gegevens beschikbaar zijn. Een complete
of een close
-gebeurtenis moet verstuurd worden wanneer alle aangevraagde gegevens gelezen zijn. De foutgebeurtenissen informeren de runtime dat de gegevensoverdracht mislukt is en moet worden afgebroken. De andere gebeurtenissen moeten indien nodig verstuurd worden als ondersteuning bij foutbehandeling en bij het opsporen van fouten in de toepassingslogica.
De methoden die door IFilePromise worden gedefinieerd, moeten alleen door de AIR runtime opgeroepen worden nadat er een bewerking voor slepen en neerzetten is voltooid. Ontwikkelaars moeten deze methoden normaal gezien niet vanaf hun eigen code oproepen.
Opmerking: de klasse URLFilePromise, die beschikbaar is in de air.desktop-bibliotheek, implementeert de IFilePromise-interface en gebruikt de URLStream als gegevensaanbieder. De air.desktop-bibliotheek wordt als afzonderlijke SWF- en SWC-bestanden opgenomen in de AIR-SDK.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
isAsync : Boolean [alleen-lezen]
Geeft aan of asynchrone gegevensoverdracht wordt ondersteund. | IFilePromise | ||
relativePath : String [alleen-lezen]
Het relatieve pad en de naam van het bestand dat door deze bestandspromise wordt gemaakt. | IFilePromise |
Methode | Gedefinieerd door | ||
---|---|---|---|
Opgeroepen door de AIR-runtime wanneer deze alle gegevens heeft gelezen. | IFilePromise | ||
Geeft het gegevensproviderobject weer. | IFilePromise | ||
Opgeroepen door de AIR-runtime om fouten te melden aan de IFilePromise-implementatie die optreden tijdens het lezen van gegevens van het gegevensproviderobject. | IFilePromise |
isAsync | eigenschap |
isAsync:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft aan of asynchrone gegevensoverdracht wordt ondersteund.
Indien true
, moet het gegevensleveranciersobject dat is geretourneerd door de methode open()
de IEventDispatcher-interface implementeren (of een klasse uitbreiden die deze interface implementeert). De gegevensoverdracht wordt aangedreven door progress
of SocketData
-gebeurtenissen. AIR wacht op deze gegevensvoortgangsgebeurtenissen totdat er een complete
- of close
-gebeurtenis wordt verzonden.
Als isAsync
wordt geretourneerd als false, neemt AIR aan dat alle gegevens direct beschikbaar zijn. In dit geval leest runtime de bytesAvailable
-eigenschap van het gegevensleveranciersobject om de beschikbare gegevenshoeveelheid te bepalen en wordt deze asynchroon gelezen.
Implementatie
public function get isAsync():Boolean
relativePath | eigenschap |
relativePath:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Het relatieve pad en de naam van het bestand dat door deze bestandspromise wordt gemaakt.
Deze eigenschap moet een geldig pad bieden of er wordt een argumentfout weergegeven wanneer de bestandspromise wordt neergezet.
Het pad kan submappen bevatten, die worden opgelost op basis van de neerzetlocatie. Indien nodig, worden de submappen gemaakt. Gebruik de File.separator
-constante wanneer u submappen toevoegt, om het juiste padscheidingsteken voor het huidige besturingssysteem in te voegen. Bij het gebruik van de header .. een sneltoets naar een bovenliggende map is niet toegestaan. Als dit wordt geprobeerd, wordt er een argumentfout gegenereerd. Tekens die ongeldig zijn in het besturingssysteem, worden uit het pad verwijderd zonder dat er een fout wordt gegenereerd.
Opmerking: om een clientcode toe te staan om het pad in te stellen, kunt u een set-functie implementeren met de handtekening: function set relativePath( value:String ):void
.
Implementatie
public function get relativePath():String
Gegenereerde uitzondering
ArgumentError — als het relatieve pad gebruik maakt van .. snelkoppelingen om een of meer bovenliggende mappen van het doel voor neerzetten te doorlopen.
|
close | () | methode |
public function close():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Opgeroepen door de AIR-runtime wanneer deze alle gegevens heeft gelezen.
Er worden geen methoden aangeroepen voor de objectverwijzing die wordt geretourneerd door open()
nadat close()
is aangeroepen. Het gegevensleveranciersobject kan veilig worden vernietigd.
open | () | methode |
public function open():IDataInput
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Geeft het gegevensproviderobject weer.
Het gegevensleveranciersobject moet de IDataInput-interface implementeren, die methoden voor het lezen van gegevens definieert. Als de IFilePromise-eigenschap isAsync
true
retourneert; moet het gegevensleveranciersobject ook de IEventDispatcher-interface implementeren. De volgende ingebouwde klassen kunnen als een gegevensleverancier worden gebruikt.
- ByteArray (synchroon)
- FileStream (synchroon of asynchroon)
- Socket (asynchroon)
- URLStream (asynchroon)
U kunt ook een object van een aangepaste klasse voorzien, die de vereiste interfaces implementeert (of een andere klasse die ze implementeert uitbreidt).
Geretourneerde waardeIDataInput — IDataInput Een object dat de IDataInput-interface implementeert. Als de gegevens asynchroon worden geleverd, moet het geretourneerde object ook de IEventDispatcher-interface implementeren.
|
reportError | () | methode |
public function reportError(e:ErrorEvent):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 2 |
Opgeroepen door de AIR-runtime om fouten te melden aan de IFilePromise-implementatie die optreden tijdens het lezen van gegevens van het gegevensproviderobject.
Parameters
e:ErrorEvent — De foutgebeurtenis bevat gedetailleerde foutinformatie.
|
Wed Jun 13 2018, 11:42 AM Z