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 />

In der Praxis sind synchrone Dateizusagen nur von eingeschränktem Nutzen. Bei einer kleinen Datenmenge könnten<br />

Sie einfach eine Datei in einem temporären Verzeichnis erstellen und der Drag & Drop-Zwischenablage ein reguläres<br />

Dateilisten-Array hinzufügen. Wenn die Datenmenge jedoch groß ist oder wenn die Computerressourcen durch das<br />

Generieren der Daten stark beansprucht werden, ist ein langer synchroner Prozess erforderlich. Lange synchrone<br />

Prozesse können die Aktualisierung der Benutzeroberfläche deutlich verzögern, sodass der Eindruck entsteht, dass die<br />

Anwendung nicht reagiert. Um dieses Problem zu vermeiden, können Sie einen asynchronen Datenprovider erstellen,<br />

der von einem Timer gesteuert wird.<br />

Verwenden eines asynchronen Datenprovider in einer Dateizusage<br />

Adobe AIR 2 und höher<br />

Bei Verwendung eines asynchronen Datenprovider-Objekts muss die isAsync-Eigenschaft von IFilePromise auf true<br />

eingestellt sein und das Objekt, das von der open()-Methode zurückgegeben wird, muss die IEventDispatcher-<br />

Schnittstelle implementieren. Die Laufzeit wartet auf mehrere alternative Ereignisse, sodass verschiedene integrierte<br />

Objekte als Datenprovider verwendet werden können. Beispielsweise werden progress-Ereignisse von FileStream-<br />

und URLStream-Objekten ausgelöst, während socketData-Ereignisse von Socket-Objekten ausgelöst werden. Die<br />

Laufzeit wartet auf die entsprechenden Ereignisse von allen diesen Objekten.<br />

Die folgenden Ereignisse steuern den Prozess zum Lesen der Daten aus dem Datenprovider-Objekt:<br />

Event.OPEN – Informiert die Laufzeit, dass die Datenquelle bereit ist.<br />

ProgressEvent.PROGRESS – Informiert die Laufzeit, dass Daten verfügbar sind. Die Laufzeit liest die verfügbare<br />

Datenmenge aus dem Datenprovider-Objekt.<br />

ProgressEvent.SOCKET_DATA – Informiert die Laufzeit, dass Daten verfügbar sind. Das socketData-Ereignis<br />

wird von socketbasierten Objekten ausgelöst. Für andere Objekttypen sollte ein progress-Ereignis ausgelöst<br />

werden. (Die Laufzeit wartet auf beide Ereignisse, um festzustellen, wann Daten gelesen werden können.)<br />

Event.COMPLETE – Informiert die Laufzeit, dass alle Daten gelesen wurden.<br />

Event.CLOSE – Informiert die Laufzeit, dass alle Daten gelesen wurden. (Zu diesem Zweck wartet die Laufzeit auf<br />

close und auf complete.)<br />

IOErrorEvent.IOERROR – Informiert die Laufzeit, dass beim Lesen der Daten ein Fehler aufgetreten ist. Die<br />

Laufzeit bricht die Erstellung der Datei ab und ruft die close()-Methode von IFilePromise auf.<br />

SecurityErrorEvent.SECURITY_ERROR – Informiert die Laufzeit, dass ein Sicherheitsfehler aufgetreten ist. Die<br />

Laufzeit bricht die Erstellung der Datei ab und ruft die close()-Methode von IFilePromise auf.<br />

HTTPStatusEvent.HTTP_STATUS – Wird zusammen mit httpResponseStatus von der Laufzeit verwendet, um<br />

sicherzustellen, dass die verfügbaren Daten den gewünschten Inhalt darstellen und keine Fehlermeldung (wie<br />

beispielsweise einen 404-Seitenfehler). Objekte auf Basis des HTTP-Protokolls sollten dieses Ereignis ausgeben.<br />

HTTPStatusEvent.HTTP_RESPONSE_STATUS – Wird zusammen mit httpStatus von der Laufzeit verwendet,<br />

um sicherzustellen, dass die verfügbaren Daten den gewünschten Inhalt darstellen. Objekte auf Basis des HTTP-<br />

Protokolls sollten dieses Ereignis ausgeben.<br />

Der Datenprovider sollte diese Ereignisse in der folgenden Reihenfolge ausgeben:<br />

1 open-Ereignis<br />

2 progress- oder socketData-Ereignisse<br />

3 complete- oder close-Ereignisse<br />

Hinweis: Die integrierten Objekte, FileStream, Socket und URLStream, setzen die entsprechenden Ereignisse<br />

automatisch ab.<br />

Letzte Aktualisierung 27.6.2012<br />

666

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

Saved successfully!

Ooh no, something went wrong!