Paket | flash.desktop |
Gränssnitt | public interface IFilePromise |
Implementorer | MediaPromise, URLFilePromise |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2 |
Ett fillöfte är ett dra och släpp urklippsformat som gör att en användare kan dra en fil som inte finns än från ett AIR-program. AIR använder metoderna och egenskaperna som definierats av IFilePromise-gränssnittet för att få åtkomst till data som ska skrivas när fillöftet släpps.
AIR anropar IFilePromise-metoden open()
när ett fillöfte släpps på ett lämpligt mål. Implementeringen av metoden måste returnera dataleverantören som ett objekt som implementerar IDataInput-gränssnittet. Det levererande objektet kan vara en av de inbyggda klasserna, t.ex. ByteArray, FileStream, Socket eller URLStream eller en anpassad klass.
Om data från dataleverantören används synkront, t.ex. med en ByteArray, läser AIR mängden data som anges av IDataInput-egenskapen bytesAvailable
och skriver den till målfilen.
Om data från dataleverantören används asynkront, t.ex. med en Socket, använder AIR händelser som skickas av leverantören för att reglera processerna för läsning av data och skrivning av data till filen. Data läses in vid varje progress-händelse tills en complete- eller close-händelse tas emot. Under körningen avlyssnas följande händelser (men en dataleverantör behöver inte skicka varje händelse):
- Event.OPEN
- ProgressEvent.PROGRESS
- ProgressEvent.SOCKET_DATA
- Event.COMPLETE
- Event.CLOSE
- IOErrorEvent.IOERROR
- SecurityErrorEvent.SECURITY_ERROR
- HTTPStatusEvent.HTTP_STATUS
- HTTPStatusEvent.HTTP_RESPONSE_STATUS
Anpassade dataleverantörsklasser bör skicka en progress
-händelse eller en socketData
-händelse när data är tillgängliga. På samma sätt bör även en complete
- eller close
-händelse skickas när alla begärda data har lästs in. Felhändelserna talar om för miljön att dataöverföringen har misslyckats och bör avbrytas. De övriga händelserna bör skickas när det är lämpligt för att underlätta felhantering och felsökning i programlogiken.
Metoderna som definieras av IFilePromise är endast avsedda att anropas av AIR-miljön när en dra och släpp-åtgärd har avslutats. Utvecklare bör i vanliga fall inte anropa dessa metoder via sin egen kod.
Obs! Klassen URLFilePromise som är tillgänglig i air.desktop-biblioteket implementerar IFilePromise-gränssnittet och använder URLStream som dataleverantör. Biblioteket air.desktop ingår som separata SWF- och SWC-filer i AIR SDK.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
isAsync : Boolean [skrivskyddad]
Anger om asynkron dataöverföring stöds. | IFilePromise | ||
relativePath : String [skrivskyddad]
Den relativa sökvägen för och filnamnet på den fil som ska skapas av det här fillöftet. | IFilePromise |
Metod | Definieras med | ||
---|---|---|---|
Anropas av AIR-miljön när alla data har lästs. | IFilePromise | ||
Returnerar DataProvider-objektet. | IFilePromise | ||
Anropas av AIR-miljön för att informera IFilePromise-implementeringen om fel som inträffar när data läses från DataProvider-objektet. | IFilePromise |
isAsync | egenskap |
isAsync:Boolean
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2 |
Anger om asynkron dataöverföring stöds.
Om true
måste DataProvider-objektet som returneras av open()
-metoden implementera IEventDispatcher-gränssnittet (eller utöka en klass som implementerar gränssnittet). Dataöverföringen drivs av händelserna progress
eller socketData
. AIR väntar på dessa data progress-händelser tills en complete
- eller close
-händelse skickas.
Om isAsync
returnerar värdet false, antar AIR-miljön att alla data är tillgängliga omgående. I sådana fall läser miljön in bytesAvailable
-egenskapen för DataProvider-objektet för att avgöra mängden tillgängliga data och läser synkront in den mängden data.
Implementering
public function get isAsync():Boolean
relativePath | egenskap |
relativePath:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2 |
Den relativa sökvägen för och filnamnet på den fil som ska skapas av det här fillöftet.
Den här egenskapen måste innehålla en giltig sökväg, annars genereras ett argumentfel när fillöftet släpps.
Sökvägen kan innehålla underkataloger, som tolkas beroende på släppmålet. Underkatalogerna skapas vid behov. Om du inkluderar underkataloger använder du konstanten File.separator
för att infoga korrekt sökvägsavgränsare för det aktuella operativsystemet. Du kan inte använda .. för att navigera till en överordnad katalog. Om du försöker göra det genereras ett argumentfel. Ogiltiga filsystemtecken rensas från sökvägen utan att något fel genereras.
Obs! Om du vill att klientkoden ska ange sökvägen kan du implementera en inställningsfunktion med signaturen: function set relativePath( value:String ):void
.
Implementering
public function get relativePath():String
Utlöser
ArgumentError — om den relativa sökvägen använder .. för att korsa en eller flera överordnade kataloger i släppningsmålet.
|
close | () | metod |
public function close():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2 |
Anropas av AIR-miljön när alla data har lästs.
Inga metoder anropas för objektreferensen som returneras av open()
när close()
har anropats. DataProvider-objektet kan förstöras.
open | () | metod |
public function open():IDataInput
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2 |
Returnerar DataProvider-objektet.
DataProvider-objektet måste implementera IDataInput-gränssnittet som definierar metoder för inläsning av data. Om IFilePromise isAsync
-egenskapen returnerar värdet true
, måste även DataProvider-objektet implementera IEventDispatcher-gränssnittet. Följande inbyggda klasser kan användas som DataProvider:
- ByteArray (synkront)
- FileStream (synkront eller asynkront)
- Socket (asynkront)
- URLStream (asynkront)
Du kan även tillhandahålla ett objekt av en anpassad klass som implementerar gränssnitten som krävs (eller utökar en annan klass som implementerar dem).
ReturnerarIDataInput — IDataInput Ett objekt som implementerar IDataInput-gränssnittet. Om data tillhandahålls asynkront måste även det returnerade objektet implementera IEventDispatcher-gränssnittet.
|
reportError | () | metod |
public function reportError(e:ErrorEvent):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 2 |
Anropas av AIR-miljön för att informera IFilePromise-implementeringen om fel som inträffar när data läses från DataProvider-objektet.
Parametrar
e:ErrorEvent — Felhändelsen som innehåller detaljerad felinformation.
|
Tue Jun 12 2018, 01:40 PM Z