15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Ziehen und Ablegen in AIR<br />

Implementieren der IFilePromise-Schnittstelle<br />

Adobe AIR 2 und höher<br />

Zum Bereitstellen von Dateizusagen für Ressourcen, die sich nicht über ein URLFilePromise-Objekt aufrufen lassen,<br />

können Sie die IFilePromise-Schnittstelle in einer benutzerdefinierten Klasse implementieren. Die IFilePromise-<br />

Schnittstelle definiert die Methoden und Eigenschaften, die die AIR-Laufzeit für den Zugriff auf die Daten verwendet,<br />

die in eine Datei geschrieben werden sollen, wenn die Dateizusage abgelegt wird.<br />

Eine IFilePromise-Implementierung übergibt ein anderes Objekt an die AIR-Laufzeit, das die Daten für die<br />

Dateizusage bereitstellt. Dieses Objekt muss die IDataInput-Schnittstelle implementieren, die von der AIR-Laufzeit<br />

zum Lesen der Daten verwendet wird. Beispielsweise verwendet die URLFilePromise-Klasse, die IFilePromise<br />

implementiert, ein URLStream-Objekt als Datenprovider.<br />

AIR kann die Daten synchron oder asynchron lesen. Die IFilePromise-Implementierung meldet den unterstützten<br />

Zugriffsmodus durch Rückgabe des entsprechenden Wertes in der isAsync-Eigenschaft. Für den asynchronen<br />

Datenzugriff muss das Datenprovider-Objekt die IEventDispatcher-Schnittstelle implementieren und die<br />

erforderlichen Ereignisse auslösen, wie open, progress und complete.<br />

Als Datenprovider für eine Dateizusage können Sie eine benutzerdefinierte Klasse oder eine der folgenden integrierten<br />

Klassen verwenden:<br />

ByteArray (synchron)<br />

FileStream (synchron oder asynchron)<br />

Socket (asynchron)<br />

URLStream (asynchron)<br />

Zum Implementieren der IFilePromise-Schnittstelle müssen Sie Code für die folgenden Funktionen und<br />

Eigenschaften angeben:<br />

open():IDataInput – Gibt das Datenprovider-Objekt zurück, aus dem die Daten für die zugesagte Datei gelesen<br />

werden. Das Objekt muss die IDataInput-Schnittstelle implementieren. Wenn die Daten asynchron bereitgestellt<br />

werden, muss das Objekt auch die IEventDispatcher-Schnittstelle implementieren und die erforderlichen<br />

Ereignisse auslösen (siehe „Verwenden eines asynchronen Datenprovider in einer Dateizusage“ auf Seite 666).<br />

get relativePath():String – Gibt den Pfad, einschließlich des Namens, für die erstellte Datei an. Dieser Pfad<br />

wird relativ zu dem Ablageort aufgelöst, den der Anwender beim Ziehen und Ablegen ausgewählt hat. Um<br />

sicherzustellen, dass der Pfad das passende Trennzeichen für das Host-Betriebssystem verwendet, geben Sie die<br />

File.separator-Konstante an, wenn Sie Pfade festlegen, die Verzeichnisse enthalten. Sie können eine Set-Funktion<br />

hinzufügen oder einen Konstruktorparameter verwenden, damit der Pfad zur Laufzeit festgelegt werden kann.<br />

get isAsync():Boolean – Informiert die AIR-Laufzeit, ob das Datenprovider-Objekt die Daten synchron oder<br />

asynchron bereitstellt.<br />

close():void – Wird von der Laufzeit aufgerufen, wenn die Daten vollständig gelesen wurden (oder wenn ein<br />

Fehler verhindert, dass die Daten weiter gelesen werden können). Diese Funktion kann zur Ressourcenbereinigung<br />

verwendet werden.<br />

reportError( e:ErrorEvent ):void – Wird von der Laufzeit aufgerufen, wenn beim Lesen der Daten ein<br />

Fehler auftritt.<br />

Alle IFilePromise-Methoden werden während einer Drag & Drop-Operation, die die Dateizusage umfasst, von der<br />

Laufzeit aufgerufen. Normalerweise sollte die Anwendungslogik keine dieser Methoden direkt aufrufen.<br />

Letzte Aktualisierung 27.6.2012<br />

664

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!