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

HTTP-Kommunikation<br />

Bei der Definition von Variablen innerhalb des URLVariables-Konstruktors oder innerhalb der<br />

URLVariables.decode()-Methode müssen die Zeichen, die in einem URI-String eine besondere Bedeutung haben,<br />

in URL-Kodierung formatiert werden. Wenn ein Parametername oder ein Parameterwert beispielsweise das &-<br />

Zeichen enthält, müssen Sie das & als %26 kodieren, da dieses Zeichen als Trennzeichen für Parameter dient. Zu diesem<br />

Zweck kann die encodeURIComponent()-Funktion auf oberster Ebene verwendet werden.<br />

Verwenden der URLLoader-Klasse<br />

Flash Player 9 und höher, Adobe AIR 1.0 und höher<br />

Mithilfe der URLLoader-Klasse können Sie eine Anforderung an einen Server senden und auf die zurückgegebenen<br />

Informationen zugreifen. Außerdem können Sie mithilfe der URLLoader-Klasse auf Dateien im lokalen Dateisystem<br />

zugreifen, wenn der lokale Dateizugriff zulässig ist (beispielsweise in der Sandbox „local-with-filesystem“ von Flash<br />

Player oder in der Sandbox der AIR-Anwendung). Die URLLoader-Klasse lädt die Daten von einer URL als Text,<br />

Binärdaten oder URL-kodierte Variablen herunter. Die URLLoader-Klasse löst verschiedene Ereignisse aus, wie zum<br />

Beispiel complete, httpStatus, ioError, open, progress und securityError.<br />

Das Ereignisverarbeitungsmodell in ActionScript 3.0 unterscheidet sich ganz erheblich von dem ActionScript 2.0-<br />

Modell, das die Ereignisprozeduren LoadVars.onData, LoadVars.onHTTPStatus und LoadVars.onLoad<br />

verwendet. Weitere Informationen zur Ereignisverarbeitung in ActionScript 3.0 finden Sie unter „Verarbeiten von<br />

Ereignissen“ auf Seite 133.<br />

Die heruntergeladenen Daten stehen erst zur Verfügung, wenn der Download abgeschlossen ist. Sie können den<br />

Fortschritt des Downloads überwachen (geladene Byte und Byte gesamt), indem Sie auf die Auslösung des progress-<br />

Ereignisses warten. Doch wenn eine Datei sehr schnell geladen wird, wird möglicherweise kein progress-Ereignis<br />

ausgelöst. Sobald eine Datei erfolgreich heruntergeladen wurde, wird das complete-Ereignis ausgelöst. Durch<br />

Einstellen der URLLoader-Eigenschaft dataFormat können Sie festlegen, dass Daten als Text, in Form von<br />

unformatierten Binärdaten oder als URLVariables-Objekt empfangen werden.<br />

Die URLLoader.load()-Methode (und wahlweise der Konstruktor der URLLoader-Klasse) arbeiten mit einem<br />

Parameter, request, bei dem es sich um ein URLRequest-Objekt handelt. Ein URLRequest-Objekt enthält alle<br />

Informationen einer HTTP-Anforderung, beispielsweise die Ziel-URL, die Anforderungsmethode (GET oder POST),<br />

zusätzliche Header-Informationen sowie den MIME-Typ.<br />

Im folgenden Beispiel wird ein XML-Paket zu einem serverseitigen Skript hochgeladen:<br />

var secondsUTC:Number = new Date().time;<br />

var dataXML:XML =<br />

<br />

{secondsUTC}<br />

;<br />

var request:URLRequest = new URLRequest("http://www.yourdomain.com/time.cfm");<br />

request.contentType = "text/xml";<br />

request.data = dataXML.toXMLString();<br />

request.method = URLRequestMethod.POST;<br />

var loader:URLLoader = new URLLoader();<br />

loader.load(request);<br />

Mit diesem Codefragment wird ein XML-Dokument namens dataXML erstellt, welches das XML-Paket enthält, das an<br />

den Server gesendet wird. In diesem Beispiel wird die URLRequest-Eigenschaft contentType auf "text/xml"<br />

eingestellt und das XML-Dokument wird der URLRequest-Eigenschaft data zugewiesen. Abschließend erstellt das<br />

Beispiel ein URLLoader-Objekt und sendet die Anforderung über die load()-Methode an das Remote-Skript.<br />

Letzte Aktualisierung 27.6.2012<br />

865

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

Saved successfully!

Ooh no, something went wrong!