ActionScript 3.0 umfasst Mechanismen zum Laden von Daten aus externen Quellen. Diese Quellen können statischen Inhalt, wie etwa Textdateien, oder dynamischen Inhalt, der von einem Webskript erzeugt wird, bereitstellen. Die Daten können auf verschiedene Weise formatiert sein, und ActionScript bietet Funktionen, um die Daten zu dekodieren und darauf zuzugreifen. Außerdem können Sie als Teil des Datenabrufverfahrens Daten an den externen Server senden.
Verwenden der URLRequest-Klasse
Viele APIs, die externe Daten laden, verwenden die URLRequest-Klasse, um die Eigenschaften der erforderlichen Netzwerkanforderung zu definieren.
URLRequest-Eigenschaften
Die folgenden Eigenschaften eines URLRequest-Objekts können in jeder Sicherheits-Sandbox festgelegt werden:
Eigenschaft
|
Beschreibung
|
contentType
|
Der MIME-Inhaltstyp von Daten, die mit der URL-Anforderung gesendet wurden. Wenn kein Wert für „contentType“ eingestellt ist, werden Werte als
application/x-www-form-urlencoded
gesendet.
|
data
|
Ein Objekt, das mit der URL-Anforderung zu übertragende Daten enthält.
|
digest
|
Ein String, der die vorzeichenbehaftete Adobe-Plattformkomponente, die im Adobe® Flash® Player-Cache gespeichert (bzw. daraus abgerufen) werden soll, eindeutig identifiziert.
|
method
|
Die HTTP-Anforderungsmethode, wie beispielsweise GET oder POST: (Der in der Sicherheitsdomäne der AIR-Anwendung ausgeführte Inhalt kann andere Strings als
"GET"
oder
"POST"
für die
method
-Eigenschaft einstellen. Jedes HTTP-Verb ist zulässig, und
"GET"
ist die Standardmethode. Siehe
AIR-Sicherheit
.)
|
requestHeaders
|
Das Array der an die HTTP-Anforderung anzuhängenden HTTP-Anforderungsheader. Beachten Sie, dass das Einstellen der Header in Flash Player und in AIR-Inhalt, der außerhalb der Anwendungssicherheits-Sandbox ausgeführt wird, Beschränkungen unterliegt.
|
url
|
Gibt die anzufordernde URL an.
|
In AIR können Sie zusätzliche Eigenschaften der URLRequest-Klasse festlegen, die nur für AIR-Inhalt zur Verfügung stehen, der in der Anwendungssicherheits-Sandbox ausgeführt wird. URLs von Inhalt in der Anwendungs-Sandbox können mithilfe neuer URL-Schemas (zusätzlich zu Standardschemas wie
file
und
http
) definiert werden.
Eigenschaft
|
Beschreibung
|
followRedirects
|
Legt fest, ob Weiterleitungen befolgt werden (
true
, der Standardwert) oder nicht (
false
). Dies wird nur in der AIR-Anwendungs-Sandbox unterstützt.
|
manageCookies
|
Gibt an, ob der HTTP-Protokollstapel bei dieser Anforderung Cookies verwalten soll (
true
, der Standardwert) oder nicht (
false
). Das Festlegen dieser Eigenschaft wird nur in der AIR-Anwendungs-Sandbox unterstützt.
|
authenticate
|
Legt fest, ob Authentifizierungsanforderungen für diese Anforderung verarbeitet werden (
true
). Das Festlegen dieser Eigenschaft wird nur in der AIR-Anwendungs-Sandbox unterstützt. Anforderungen werden standardmäßig authentifiziert. Falls der Server die Anzeige von Benutzerangaben erfordert, wird ein Dialogfeld zur Authentifizierung geöffnet. Sie können auch den Benutzernamen und das Kennwort mit der URLRequestDefaults-Klasse festlegen; siehe
Festlegen der URLRequest-Standardeinstellungen (nur AIR)
.
|
cacheResponse
|
Gibt an, ob Antwortdaten für diese Anforderung zwischengespeichert werden sollen. Das Festlegen dieser Eigenschaft wird nur in der AIR-Anwendungs-Sandbox unterstützt. Die Standardeinstellung ist, die Antwort zwischenzuspeichern (
true
).
|
useCache
|
Legt fest, ob der lokale Cache überprüft wird, bevor diese URLRequest Daten abruft. Das Festlegen dieser Eigenschaft wird nur in der AIR-Anwendungs-Sandbox unterstützt. Die Standardeinstellung lautet
true
, d. h. falls verfügbar wird die lokal zwischengespeicherte Version wird verwendet.
|
userAgent
|
Legt den Benutzer-Agent-String fest, der in der HTTP-Anforderung verwendet wird.
|
Hinweis:
Die HTMLLoader-Klasse bietet ähnliche Eigenschaften für Einstellungen, die sich auf Inhalt beziehen, der mit einem HTMLLoader-Objekt geladen wurde. Weitere Informationen finden Sie unter
HTMLLoader-Klasse
.
Festlegen der URLRequest-Standardeinstellungen (nur AIR)
Mithilfe der URLRequestDefaults-Klasse können Sie anwendungsspezifische Standardeinstellungen für URLRequest-Objekte definieren. Im folgenden Beispiel werden die Standardwerte für die
manageCookies
- und
useCache
-Eigenschaften festgelegt. Für alle neuen URLRequest-Objekte werden die angegebenen Werte dieser Eigenschaften anstelle der regulären Standardeinstellungen verwendet:
URLRequestDefaults.manageCookies = false;
URLRequestDefaults.useCache = false;
Hinweis:
Die URLRequestDefaults-Klasse ist nur für Inhalt, der in Adobe AIR ausgeführt wird, definiert. In Flash Player gibt es dafür keine Unterstützung.
Die URLRequestDefaults-Klasse enthält die
setLoginCredentialsForHost()
-Methode, mit der Sie einen standardmäßigen Benutzernamen und ein Kennwort für einen bestimmten Host festlegen können. Dieser Host, der im hostname-Parameter der Methode definiert ist, kann eine Domäne sein, zum Beispiel
"www.example.com"
oder eine Domäne und eine Portnummer, zum Beispiel
"www.example.com:80"
. Beachten Sie, dass
"example.com"
,
"www.example.com"
und
"sales.example.com"
jeweils als eindeutige Hosts angesehen werden.
Diese Benutzerangaben werden nur verwendet, wenn sie der Server erforderlich macht. Wenn der Benutzer bereits authentifiziert wurde (zum Beispiel über das Dialogfeld für die Authentifizierung), wird durch Aufruf der
setLoginCredentialsForHost()
-Methode der authentifizierte Benutzer nicht geändert.
Mit dem folgenden Code werden der Standardbenutzername und das Kennwort für Anforderungen an www.example.com festgelegt:
URLRequestDefaults.setLoginCredentialsForHost("www.example.com", "Ada", "love1816$X");
Die URLRequestDefaults-Einstellungen gelten nur für die aktuelle Anwendungsdomäne, mit einer Ausnahme. Die an die
setLoginCredentialsForHost()
-Methode übergebenen Benutzerinformationen werden für Anforderungen in jeder Anwendungsdomäne innerhalb der AIR-Anwendung benutzt.
Weitere Informationen finden Sie in der Beschreibung der URLRequestDefaults-Klasse im
ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform
.
URI-Schemas
Die URI-Standardschemas, wie beispielsweise die folgenden, können in Anforderungen von jeder Sicherheits-Sandbox verwendet werden:
http: und https:
Verwenden Sie diese Schemas für standardmäßige Internet-URLs (genau wie bei der Verwendung in einem Webbrowser).
file:
Verwenden Sie
file:
zur Angabe der URL einer Datei, die sich im lokalen Dateisystem befindet. Zum Beispiel:
file:///c:/AIR Test/test.txt
In AIR können Sie auch eines der folgenden Schemas verwenden, wenn Sie eine URL für Inhalt definieren, der in der Sicherheits-Sandbox der Anwendung ausgeführt wird:
app:
Geben Sie mit
app:
einen Pfad relativ zum Stamm der installierten Anwendung an. Beispielsweise verweist der folgende Pfad auf ein „resources“ genanntes Unterverzeichnis im Verzeichnis der installierten Anwendung:
app:/resources
Wenn eine AIR-Anwendung über ADL (AIR Debug Launcher) gestartet wird, ist das Anwendungsverzeichnis das Verzeichnis, das die Deskriptordatei der Anwendung enthält.
Die URL (und die
url
-Eigenschaft) eines mit
File.applicationDirectory
erstellten File-Objekts verwenden das URI-Schema
app
, wie im Folgenden gezeigt:
var dir:File = File.applicationDirectory;
dir = dir.resolvePath("assets");
trace(dir.url); // app:/assets
app-storage:
Geben Sie mit
app-storage:
einen Pfad relativ zum Datenspeicherverzeichnis der installierten Anwendung an. Für jede installierte Anwendung (und jeden Benutzer) erstellt AIR ein eindeutiges Anwendungsspeicherverzeichnis, ein nützlicher Ort zum Speichern anwendungsspezifischer Daten. Der folgende Pfad etwa verweist von einem File-Objekt auf eine Datei mit dem Namen „prefs.xml“ in einem settings-Verzeichnis des Anwendungsspeicherverzeichnisses:
app-storage:/settings/prefs.xml
Die URL (und die
url
-Eigenschaft) eines mit
File.applicationStorageDirectory
erstellten File-Objekts verwenden das URI-Schema
app-storage
, wie im Folgenden gezeigt:
var prefsFile:File = File.applicationStorageDirectory;
prefsFile = prefsFile.resolvePath("prefs.xml");
trace(dir.prefsFile); // app-storage:/prefs.xml
mailto:
Sie können das mailto-Schema in URLRequest-Objekten verwenden, die an die
navigateToURL()
-Funktion übergeben werden. Siehe
Öffnen einer URL in einer anderen Anwendung
.
Mit einem URLRequest-Objekt, das eines dieser URI-Schemas verwendet, können Sie die URL-Anforderung für mehrere verschiedene Objekte, wie etwa ein FileStream- oder ein Sound-Objekt, definieren. Sie können diese Schemas auch mit HTML-Inhalt, der in AIR ausgeführt wird, verwenden; z. B. im
src
-Attribut eines
img
-Tags.
Diese AIR-spezifischen URI-Schemas (
app:
und
app-storage:
) können Sie jedoch nur in Inhalt in der Sicherheits-Sandbox der Anwendung verwenden. Weitere Informationen finden Sie unter
AIR-Sicherheit
.
Einstellen von URL-Variablen
Variablen können zwar direkt in einem URL-String hinzugefügt werden, doch möglicherweise ist es einfacher, die für eine Anforderung erforderlichen Variablen über die URLVariables-Klasse zu definieren.
Es gibt drei Möglichkeiten, um einem URLVariables-Objekt Parameter hinzuzufügen:
-
Im URLVariables-Konstruktor
-
Mit der
URLVariables.decode()
-Methode
-
Als dynamische Eigenschaften des URLVariables-Objekts selbst
Das folgende Beispiel veranschaulicht alle drei Möglichkeiten und zeigt auch, wie die Variablen einem URLRequest-Objekt zugewiesen werden:
var urlVar:URLVariables = new URLVariables( "one=1&two=2" );
urlVar.decode("amp=" + encodeURIComponent( "&" ) );
urlVar.three = 3;
urlVar.amp2 = "&&";
trace(urlVar.toString()); //amp=%26&2=%26%26&one=1&two=2&three=3
var urlRequest:URLRequest = new URLRequest( "http://www.example.com/test.cfm" );
urlRequest.data = urlVar;
Bei der Definition von Variablen innerhalb des URLVariables-Konstruktors oder innerhalb der
URLVariables.decode()
-Methode müssen die Zeichen, die in einem URI-String eine besondere Bedeutung haben, in URL-Kodierung formatiert werden. Wenn ein Parametername oder ein Parameterwert beispielsweise das &-Zeichen enthält, müssen Sie das
&
als
%26
kodieren, da dieses Zeichen als Trennzeichen für Parameter dient. Zu diesem Zweck kann die
encodeURIComponent()
-Funktion auf oberster Ebene verwendet werden.
Verwenden der URLLoader-Klasse
Mithilfe der URLLoader-Klasse können Sie eine Anforderung an einen Server senden und auf die zurückgegebenen Informationen zugreifen. Außerdem können Sie mithilfe der URLLoader-Klasse auf Dateien im lokalen Dateisystem zugreifen, wenn der lokale Dateizugriff zulässig ist (beispielsweise in der Sandbox „local-with-filesystem“ von Flash Player oder in der Sandbox der AIR-Anwendung). Die URLLoader-Klasse lädt die Daten von einer URL als Text, Binärdaten oder URL-kodierte Variablen herunter. Die URLLoader-Klasse löst verschiedene Ereignisse aus, wie zum Beispiel
complete
,
httpStatus
,
ioError
,
open
,
progress
und
securityError
.
Das Ereignisverarbeitungsmodell in ActionScript 3.0 unterscheidet sich ganz erheblich von dem ActionScript 2.0-Modell, das die Ereignisprozeduren
LoadVars.onData
,
LoadVars.onHTTPStatus
und
LoadVars.onLoad
verwendet. Weitere Informationen zur Ereignisverarbeitung in ActionScript 3.0 finden Sie unter
Verarbeiten von Ereignissen
.
Die heruntergeladenen Daten stehen erst zur Verfügung, wenn der Download abgeschlossen ist. Sie können den Fortschritt des Downloads überwachen (geladene Byte und Byte gesamt), indem Sie auf die Auslösung des
progress
-Ereignisses warten. Doch wenn eine Datei sehr schnell geladen wird, wird möglicherweise kein
progress
-Ereignis ausgelöst. Sobald eine Datei erfolgreich heruntergeladen wurde, wird das
complete
-Ereignis ausgelöst. Durch Einstellen der URLLoader-Eigenschaft
dataFormat
können Sie festlegen, dass Daten als Text, in Form von unformatierten Binärdaten oder als URLVariables-Objekt empfangen werden.
Die
URLLoader.load()
-Methode (und wahlweise der Konstruktor der URLLoader-Klasse) arbeiten mit einem Parameter,
request
, bei dem es sich um ein URLRequest-Objekt handelt. Ein URLRequest-Objekt enthält alle Informationen einer HTTP-Anforderung, beispielsweise die Ziel-URL, die Anforderungsmethode (
GET
oder
POST
), zusätzliche Header-Informationen sowie den MIME-Typ.
Im folgenden Beispiel wird ein XML-Paket zu einem serverseitigen Skript hochgeladen:
var secondsUTC:Number = new Date().time;
var dataXML:XML =
<clock>
<time>{secondsUTC}</time>
</clock>;
var request:URLRequest = new URLRequest("http://www.yourdomain.com/time.cfm");
request.contentType = "text/xml";
request.data = dataXML.toXMLString();
request.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.load(request);
Mit diesem Codefragment wird ein XML-Dokument namens
dataXML
erstellt, welches das XML-Paket enthält, das an den Server gesendet wird. In diesem Beispiel wird die URLRequest-Eigenschaft
contentType
auf
"text/xml"
eingestellt und das XML-Dokument wird der URLRequest-Eigenschaft
data
zugewiesen. Abschließend erstellt das Beispiel ein URLLoader-Objekt und sendet die Anforderung über die
load()
-Methode an das Remote-Skript.
Verwenden der URLStream-Klasse
Die URLStream-Klasse ermöglicht den Zugriff auf die heruntergeladenen Daten direkt beim Datenempfang. Mit der URLStream-Klasse können Sie außerdem einen Stream beenden, bevor der Download abgeschlossen ist. Die heruntergeladenen Daten stehen als unformatierte Binärdaten zur Verfügung.
Verwenden Sie beim Lesen von Daten aus einem URLStream-Objekt die
bytesAvailable
-Eigenschaft, um festzustellen, ob vor dem Lesen ausreichend Daten zur Verfügung stehen. Eine EOFError-Ausnahme wird ausgelöst, wenn Sie versuchen, mehr Daten zu lesen als derzeit verfügbar sind.
Das httpResponseStatus-Ereignis (AIR)
In Adobe AIR löst die URLStream-Klasse ein
httpResponseStatus
-Ereignis zusätzlich zum
httpStatus
-Ereignis aus. Das
httpResponseStatus
-Ereignis wird ausgelöst, bevor Antwortdaten empfangen werden. Das
httpResponseStatus
-Ereignis (das von der HTTPStatusEvent-Klasse dargestellt wird) enthält eine
responseURL
-Eigenschaft (die URL, die die Antwort zurückgegeben hat) und eine
responseHeaders
-Eigenschaft (ein Array von URLRequestHeader-Objekten, die die Antwort-Header der zurückgegebenen Antwort darstellen).
Laden von Daten aus externen Dokumenten
Wenn Sie dynamische Anwendungen erstellen, kann es hilfreich sein, Daten aus externen Dateien oder aus serverseitigen Skripts zu laden. Auf diese Weise können Sie dynamische Anwendungen erstellen, ohne dass Sie Ihre Anwendung bearbeiten oder neu kompilieren müssen. Angenommen, Sie erstellen eine Anwendung „Tipp des Tages“. In diesem Fall können Sie ein serverseitiges Skript erstellen, das einen zufälligen Tipp aus einer Datenbank abruft und einmal am Tag in einer Textdatei speichert. Dann kann Ihre Anwendung die Inhalte einer statischen Textdatei laden, anstatt jedes Mal die Datenbank abzufragen.
Der folgende Codeausschnitt erstellt ein URLRequest- und ein URLLoader-Objekt, welche die Inhalte einer externen Textdatei namens „params.txt“ laden:
var request:URLRequest = new URLRequest("params.txt");
var loader:URLLoader = new URLLoader();
loader.load(request);
In der Standardeinstellung laden Flash Player und Adobe AIR die Inhalte mithilfe der Methode
HTTP GET
, wenn Sie keine Anforderungsmethode definieren. Um die Anforderung mithilfe der
POST
-Methode zu senden, geben Sie für die
request.method
-Eigenschaft den Wert
POST
mittels der statischen Konstante
URLRequestMethod.POST
an. Siehe hierzu auch das folgende Beispiel:
var request:URLRequest = new URLRequest("sendfeedback.cfm");
request.method = URLRequestMethod.POST;
Das externe Dokument „params.txt“, das zur Laufzeit geladen wird, enthält die folgenden Daten:
monthNames=January,February,March,April,May,June,July,August,September,October,November,December&dayNames=Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
Die Datei enthält zwei Parameter:
monthNames
und
dayNames
. Jeder Parameter enthält eine durch Kommas getrennte Liste, die als Strings geparst wird. Sie können diese Liste mit der
String.split()
-Methode in einen Array aufteilen.
Vermeiden Sie das Verwenden von reservierten Wörtern oder Sprachkonstrukten in externen Datendateien, da andernfalls das Lesen und Debuggen Ihres Codes schwieriger wird.
Nachdem die Daten geladen wurden, wird das
complete
-Ereignis ausgelöst, und der Inhalt des externen Dokuments steht der URLLoader-Eigenschaft
data
zur Verfügung. Dies wird im folgenden Code gezeigt:
function completeHandler(event)
{
var loader2 = event.target;
air.trace(loader2.data);
}
Wenn das Remote-Dokument Name-Wert-Paare enthält, können Sie die Daten mit der URLVariables-Klasse parsen, indem Sie den Inhalt der geladenen Datei wie folgt übergeben:
private function completeHandler(event:Event):void
{
var loader2:URLLoader = URLLoader(event.target);
var variables:URLVariables = new URLVariables(loader2.data);
trace(variables.dayNames);
}
Jedes Name-Wert-Paare aus der externen Datei wird als eine Eigenschaft im URLVariables-Objekt erstellt. Im vorausgehenden Beispiel wird jede Eigenschaft im Variablenobjekt wie ein String behandelt. Handelt es sich beim Wert des Name-Wert-Paars um eine Liste mit Elementen, können Sie den String durch Aufrufen der
String.split()
-Methode wie folgt in ein Array umwandeln:
var dayNameArray:Array = variables.dayNames.split(",");
Wenn Sie numerische Daten aus externen Textdateien laden, wandeln Sie die Werte mithilfe einer Funktion auf oberster Ebene, wie z. B.
int()
,
uint()
oder
Number()
, in numerische Werte um.
Alternativ zum Laden der Inhalte der externen Datei als String und dem Erstellen eines neuen URLVariables-Objekts können Sie die
URLLoader.dataFormat
-Eigenschaft auf eine der statischen Eigenschaften der URLLoaderDataFormat-Klasse einstellen. Die drei möglichen Werte der
URLLoader.dataFormat
-Eigenschaft lauten:
-
URLLoaderDataFormat.BINARY
– Die Eigenschaft
URLLoader.data
enthält Binärdaten, die in einem ByteArray-Objekt gespeichert sind.
-
URLLoaderDataFormat.TEXT
– Die Eigenschaft
URLLoader.data
enthält Text in einem String-Objekt.
-
URLLoaderDataFormat.VARIABLES
– Die Eigenschaft
URLLoader.data
enthält URL-kodierte Variablen, die in einem URLVariables-Objekt gespeichert sind.
Der folgende Code zeigt, wie das Einstellen der Eigenschaft
URLLoader.dataFormat
auf
URLLoaderDataFormat.VARIABLES
es Ihnen ermöglicht, geladene Daten automatisch in ein URLVariables-Objekt zu analysieren:
package
{
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
public class URLLoaderDataFormatExample extends Sprite
{
public function URLLoaderDataFormatExample()
{
var request:URLRequest = new URLRequest("http://www.[yourdomain].com/params.txt");
var variables:URLLoader = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.VARIABLES;
variables.addEventListener(Event.COMPLETE, completeHandler);
try
{
variables.load(request);
}
catch (error:Error)
{
trace("Unable to load URL: " + error);
}
}
private function completeHandler(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
trace(loader.data.dayNames);
}
}
}
Hinweis:
Der Standardwert für
URLLoader.dataFormat
ist
URLLoaderDataFormat.TEXT
.
Das folgende Beispiel zeigt, dass XML aus einer externen Datei auf die gleiche Weise geladen wird wie URLVariables. Sie können eine URLRequest-Instanz und eine URLLoader-Instanz erstellen, um mit ihnen ein remotes XML-Dokument herunterzuladen. Nachdem die Datei vollständig heruntergeladen wurde, wird das
Event.COMPLETE
-Ereignis ausgelöst, und die Inhalte der externen Datei werden in eine XML-Instanz umgewandelt, die Sie mit XML-Methoden und -Eigenschaften analysieren können.
package
{
import flash.display.Sprite;
import flash.errors.*;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class ExternalDocs extends Sprite
{
public function ExternalDocs()
{
var request:URLRequest = new URLRequest("http://www.[yourdomain].com/data.xml");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
try
{
loader.load(request);
}
catch (error:ArgumentError)
{
trace("An ArgumentError has occurred.");
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
}
private function completeHandler(event:Event):void
{
var dataXML:XML = XML(event.target.data);
trace(dataXML.toXMLString());
}
}
}
Kommunizieren mit externen Skripts
Sie können die URLVariables-Klasse neben dem Laden von externen Datendateien auch zum Senden von Variablen an ein serverseitiges Skript und zum Bearbeiten der Antwort des Servers verwenden. Dies ist z. B. nützlich, wenn Sie ein Spiel programmieren und das Ergebnis des Benutzers an einen Server senden möchten, um zu berechnen, ob es zur Bestenliste hinzugefügt werden sollte, oder um die Anmeldeinformationen des Benutzers zur Validierung an einen Server zu senden. Ein serverseitiges Skript kann den Benutzernamen und das Kennwort verarbeiten, kann sie anhand einer Datenbank validieren und ggf. die Gültigkeit der vom Benutzer eingegebenen Benutzerangaben bestätigen.
Der folgende Codeausschnitt erstellt ein URLVariables-Objekt namens
variables
, das ein neues Objekt mit der Bezeichnung
name
erstellt. Als Nächstes wird ein URLRequest-Objekt erstellt, mit dem die URL des serverseitigen Skripts, an das die Variablen gesendet werden sollen, angegeben wird. Dann legen Sie mit der
method
-Eigenschaft des URLRequest-Objekts fest, dass die Variablen als eine
POST
-Anforderung von HTTP gesendet werden. Um das URLVariables-Objekt zur URL-Anforderung hinzuzufügen, stellen Sie die
data
-Eigenschaft des URLRequest-Objekts auf das zuvor erstellte URLVariables-Objekt ein. Daraufhin wird die URLLoader-Instanz erstellt, und die
URLLoader.load()
-Methode wird aufgerufen, die die Anforderung einleitet.
var variables:URLVariables = new URLVariables("name=Franklin");
var request:URLRequest = new URLRequest();
request.url = "http://www.[yourdomain].com/greeting.cfm";
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, completeHandler);
try
{
loader.load(request);
}
catch (error:Error)
{
trace("Unable to load URL");
}
function completeHandler(event:Event):void
{
trace(event.target.data.welcomeMessage);
}
Der folgende Code enthält den Inhalt des Adobe ColdFusion®-Dokuments „greeting.cfm“, das im vorhergehenden Beispiel verwendet wurde:
<cfif NOT IsDefined("Form.name") OR Len(Trim(Form.Name)) EQ 0>
<cfset Form.Name = "Stranger" />
</cfif>
<cfoutput>welcomeMessage=#UrlEncodedFormat("Welcome, " & Form.name)#
</cfoutput>
|
|
|