Paket | flash.desktop |
Schnittstelle | public interface IFilePromise |
Umsetzer | MediaPromise, URLFilePromise |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Eine Dateizusage ist ein Drag-and-Drop-Zwischenablageformat, das es einem Benutzer ermöglicht, eine Datei, die noch nicht vorhanden ist, aus einer AIR-Anwendung zu ziehen. AIR verwendet die Methoden und Eigenschaften, die von der IFilePromise-Schnittstelle definiert werden, um auf die zu schreibenden Daten zuzugreifen, wenn die Dateizusage abgelegt wird.
Wenn eine Dateizusage auf einem geeigneten Ziel abgelegt wird, ruft AIR die open()
-Methode von IFilePromise auf. Die Implementierung dieser Methode muss den Datenprovider als ein Objekt, das die IDataInput-Schnittstelle implementiert, zurückgeben. Das Providerobjekt kann eine der integrierten Klassen sein, zum Beispiel ByteArray, FileStream, Socket und URLStream, oder eine benutzerdefinierte Klasse.
Wenn synchron auf die Daten vom Datenprovider zugegriffen wird, wie zum Beispiel bei einem ByteArray, liest AIR die Menge der Daten, die von der bytesAvailable
-Eigenschaft von IDataInput angegeben wird, und schreibt sie in die Zieldatei.
Wenn asynchron auf die Daten vom Datenprovider zugegriffen wird, wie zum Beispiel bei einem Socket, verwendet AIR die Ereignisse, die vom Provider abgesetzt werden, um den Datenleseprozess zu steuern und die Daten in die Datei zu schreiben. Daten werden bei jedem Fortschrittsereignis gelesen, bis ein complete- oder close-Ereignis empfangen wird. Die Laufzeitumgebung wartet auf die folgenden Ereignisse (ein Datenprovider muss jedoch nicht jedes Ereignis absetzen):
- Event.OPEN
- ProgressEvent.PROGRESS
- ProgressEvent.SOCKET_DATA
- Event.COMPLETE
- Event.CLOSE
- IOErrorEvent.IOERROR
- SecurityErrorEvent.SECURITY_ERROR
- HTTPStatusEvent.HTTP_STATUS
- HTTPStatusEvent.HTTP_RESPONSE_STATUS
Benutzerdefinierte Datenproviderklassen sollten entweder ein progress
-Ereignis oder ein socketData
-Ereignis absetzen, wenn Daten verfügbar sind. Desgleichen sollte entweder ein complete
oder ein close
-Ereignis abgesetzt werden, wenn alle erforderlichen Daten gelesen wurden. Die Fehlerereignisse informieren die Laufzeitumgebung darüber, dass die Datenübertragung fehlgeschlagen ist und abgebrochen werden sollte. Die anderen Ereignisse sollten wie angebracht abgesetzt werden, um bei der Fehlerverarbeitung und beim Debugging der Anwendungslogik helfen.
Die von IFilePromise definierten Methoden sind nur dazu gedacht, von der AIR-Laufzeitumgebung aufgerufen zu werden, nachdem ein Drag-and-Drop-Vorgang abgeschlossen wurde. Entwickler sollten diese Methoden normalerweise nicht aus ihrem eigenen Code aufrufen.
Hinweis: Die URLFilePromise-Klasse, verfügbar in der air.desktop-Bibliothek, implementiert die IFilePromise-Schnittstelle und verwendet den URLStream als Datenprovider. Die air.desktop-Bibliothek ist in Form separater SWF- und SWC-Dateien im AIR-SDK verfügbar.
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
isAsync : Boolean [schreibgeschützt]
Gibt an, ob die asynchrone Datenübertragung unterstützt wird. | IFilePromise | ||
relativePath : String [schreibgeschützt]
Der relative Pfad und der Dateiname der Datei, die von dieser Dateizusage erstellt wird. | IFilePromise |
Methode | Definiert von | ||
---|---|---|---|
Wird von der AIR-Laufzeitumgebung aufgerufen, wenn diese alle Daten gelesen hat. | IFilePromise | ||
Gibt das Dataprovider-Objekt zurück. | IFilePromise | ||
Wird von der AIR-Laufzeitumgebung aufgerufen, um die IFilePromise-Implementierung über Fehler zu informieren, die beim Lesen von Daten aus dem Dataprovider-Objekt auftreten. | IFilePromise |
isAsync | Eigenschaft |
isAsync:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Gibt an, ob die asynchrone Datenübertragung unterstützt wird.
Bei dem Wert true
muss das von der open()
-Methode zurückgegebene Datenproviderobjekt die IEventDispatcher-Schnittstellen implementieren (oder eine Klasse erweitern, die diese Schnittstelle implementiert). Die Datenübertragung wird von progress
- oder socketData
-Ereignissen ermöglicht. AIR wartet auf diese Datenfortschrittereignisse, bis ein complete
- oder ein close
-Ereignis abgesetzt wird.
Wenn isAsync
den Wert „false“ zurückgibt, geht die AIR-Laufzeitumgebung davon aus, dass alle Daten sofort verfügbar sind. In diesem Fall liest die Laufzeitumgebung die bytesAvailable
-Eigenschaft des Datenproviderobjekts, um die verfügbare Datenmenge zu bestimmen, und liest diese Datenmenge synchron.
Implementierung
public function get isAsync():Boolean
relativePath | Eigenschaft |
relativePath:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Der relative Pfad und der Dateiname der Datei, die von dieser Dateizusage erstellt wird.
Diese Eigenschaft muss einen gültigen Pfad bereitstellen oder es wird ein Argumentfehler ausgegeben, wenn die Dateizusage abgelegt wird.
Der Pfad kann Unterverzeichnisse enthalten, die basierend auf dem Ablegeziel aufgelöst werden. Die Unterverzeichnisse werden erstellt, falls erforderlich. Wenn Unterverzeichnisse einbezogen werden, verwenden Sie die File.separator
-Konstante, um das richtige Pfadtrennzeichen für das aktuelle Betriebssystem einzufügen. Die Verwendung der Kurzform .., um zu einem übergeordneten Verzeichnis zu navigieren, ist nicht zulässig. Bei einem Versuch wird ein Argumentfehler ausgegeben. Ungültige Dateisystemzeichen werden aus dem Pfad entfernt, ohne dass ein Fehler ausgegeben wird.
Hinweis: Damit Client-Code den Pfad festlegen kann, können Sie eine Setter-Funktion mit der folgenden Signatur implementieren: function set relativePath( value:String ):void
.
Implementierung
public function get relativePath():String
Auslöser
ArgumentError — falls der relative Pfad ..- Abkürzungen verwendet, um ein oder mehrere übergeordnete Verzeichnisse des Ablageziels zu durchlaufen.
|
close | () | Methode |
public function close():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Wird von der AIR-Laufzeitumgebung aufgerufen, wenn diese alle Daten gelesen hat.
Es werden keine Methoden für den Objektverweis aufgerufen, der von der open()
-Methode zurückgegeben wird, nachdem die close()
-Methode aufgerufen wurde. Das Datenproviderobjekt kann sicher gelöscht werden.
open | () | Methode |
public function open():IDataInput
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Gibt das Dataprovider-Objekt zurück.
Das Datenproviderobjekt muss die IDataInput-Schnittstelle implementieren, die Methoden zum Lesen der Daten definiert. Wenn die isAsync
-Eigenschaft von IFilePromise true
zurückgibt, muss das Datenproviderobjekt ebenfalls die IEventDispatcher-Schnittstelle implementieren. Die folgenden integrierten Klassen können als Datenprovider verwendet werden:
- ByteArray (synchron)
- FileStream (synchron oder asynchron)
- Socket (asynchron)
- URLStream (asynchron)
Sie können auch ein Objekt einer benutzerdefinierten Klasse bereitstellen, die die erforderlichen Schnittstellen implementiert (oder eine andere Klasse erweitert, die sie implementiert).
RückgabewerteIDataInput — IDataInput Ein Objekt, das die IDataInput-Schnittstelle implementiert. Wenn die Daten asynchron bereitgestellt werden, muss das zurückgegebene Objekt ebenfalls die IEventDispatcher-Schnittstelle implementieren.
|
reportError | () | Methode |
public function reportError(e:ErrorEvent):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 2 |
Wird von der AIR-Laufzeitumgebung aufgerufen, um die IFilePromise-Implementierung über Fehler zu informieren, die beim Lesen von Daten aus dem Dataprovider-Objekt auftreten.
Parameter
e:ErrorEvent — Das Fehlerereignis, das ausführliche Fehlerinformationen enthält.
|
Tue Jun 12 2018, 10:04 AM Z