ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.net 

URLLoader  - AS3

Paketflash.net
Klassepublic class URLLoader
VererbungURLLoader Inheritance EventDispatcher Inheritance Object
Unterklassen AVURLLoader

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die URLLoader-Klasse lädt die Daten von einer URL als Text, Binärdaten oder URL-kodierte Variablen herunter. Sie eignet sich gut zum Download von Textdateien, XML-Daten oder anderen Informationen, die in einer dynamischen, datengesteuerten Anwendung verwendet werden sollen.

Ein URLLoader-Objekt lädt erst alle Daten von einer URL herunter und macht sie dann für Code in den Anwendungen verfügbar. Das Objekt sendet Benachrichtigungen über den Fortschritt des Download-Vorgangs, den Sie mit den Eigenschaften bytesLoaded und bytesTotal und mit ausgelösten Ereignissen verfolgen können.

Wenn sehr große Videodateien wie z. B. FLV-Dateien geladen werden, können Fehler aufgrund von unzureichendem Speicher zurückgegeben werden.

Wenn Sie diese Klasse in Flash Player und in AIR-Anwendungsinhalten in anderen Sicherheitssandboxen als in der Sicherheitssandbox der Anwendung verwenden, sollten Sie folgendes Sicherheitsmodell in Betracht ziehen:

  • Eine SWF-Datei innerhalb der lokalen Dateisystem-Sandbox kann keine Daten aus einer Ressource in der Network-Sandbox laden bzw. keine Daten für diese Ressource bereitstellen.
  • Standardmäßig müssen die aufrufende SWF-Datei und die von Ihnen geladene URL in genau der gleichen Domäne sein. Eine SWF-Datei unter www.adobe.com kann beispielsweise nur Daten laden, die sich ebenfalls unter www.adobe.com befinden. Legen Sie eine URL-Richtliniendatei auf dem Server ab, der die Daten hostet, um Daten aus einer anderen Domäne zu laden.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
  bytesLoaded : uint = 0
Gibt die Anzahl der Byte an, die bereits geladen wurden.
URLLoader
  bytesTotal : uint = 0
Gibt die Gesamtanzahl der Byte der heruntergeladenen Daten an.
URLLoader
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  data : *
Die bei dem Ladevorgang empfangenen Daten.
URLLoader
  dataFormat : String = "text"
Steuert, ob die heruntergeladenen Daten als Text (URLLoaderDataFormat.TEXT), unformatierte Binärdaten (URLLoaderDataFormat.BINARY) oder URL-kodierte Variablen (URLLoaderDataFormat.VARIABLES) empfangen werden.
URLLoader
Öffentliche Methoden
 MethodeDefiniert von
  
URLLoader(request:URLRequest = null)
Erstellt ein URLLoader-Objekt.
URLLoader
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
[override] Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
URLLoader
  
Schließt den laufenden Ladevorgang.
URLLoader
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
  
Sendet und lädt Daten von der angegebenen URL.
URLLoader
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
  Wird ausgelöst, nachdem alle empfangenen Daten dekodiert und in der Eigenschaft „data“ des URLLoader-Objekts abgelegt wurden.URLLoader
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
  Wird ausgelöst, wenn ein Aufruf der load()-Methode versucht, über HTTP auf Daten zuzugreifen und Adobe AIR den Statuscode für die Anforderung erkennen und zurückgeben kann.URLLoader
  Wird ausgelöst, wenn ein Aufruf von URLLoader.load() versucht, über HTTP auf Daten zuzugreifen.URLLoader
  Wird ausgelöst, wenn bei einem URLLoader.load()-Aufruf ein schwerwiegender Fehler auftritt und der Download abgebrochen wird.URLLoader
  Wird ausgelöst, wenn der Download-Vorgang nach dem Aufruf der Methode URLLoader.load() gestartet wird.URLLoader
  Wird ausgelöst, wenn während des Download-Vorgangs Daten empfangen werden.URLLoader
  Wird ausgelöst, wenn ein URLLoader.load()-Aufruf versucht, Daten von einem Server außerhalb der Sicherheitssandbox zu laden.URLLoader
Eigenschaftendetails

bytesLoaded

Eigenschaft
public var bytesLoaded:uint = 0

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt die Anzahl der Byte an, die bereits geladen wurden.

bytesTotal

Eigenschaft 
public var bytesTotal:uint = 0

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt die Gesamtanzahl der Byte der heruntergeladenen Daten an. Diese Eigenschaft weist während des Ladevorgangs den Wert 0 auf und wird nach Abschluss des Vorgangs mit dem entsprechenden Wert gefüllt. Ein fehlender Content-Length-Header führt dazu, dass bytesTotal unbestimmt ist.

data

Eigenschaft 
public var data:*

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die bei dem Ladevorgang empfangenen Daten. Dieser Eigenschaft werden nur dann Werte zugewiesen, wenn der Ladevorgang abgeschlossen wurde. Das Format der Daten hängt von der Einstellung der Eigenschaft dataFormat ab:

Wenn die Eigenschaft dataFormat auf URLLoaderDataFormat.TEXT gesetzt ist, wird ein String empfangen, der den Text aus der geladenen Datei enthält.

Wenn die Eigenschaft dataFormat auf URLLoaderDataFormat.BINARY gesetzt ist, werden die Daten als ByteArray-Objekt empfangen, das unformatierte Binärdaten enthält.

Wenn die Eigenschaft dataFormat auf URLLoaderDataFormat.VARIABLES gesetzt ist, werden die Daten als URLVariables-Objekt empfangen, das URL-kodierte Variablen enthält.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Das folgende Beispiel zeigt, wie Sie eine externe Textdatei mit URL-kodierten Variablen in ein ActionScript 3.0-Dokument laden. Dazu wird die URLLoader-Klasse verwendet und die dataFormat-Eigenschaft auf die URLLoaderDataFormat.VARIABLES-Konstante ("variables") gesetzt. Beispiel bereitgestellt von ActionScriptExamples.com.
//params.txt is a local file that includes: firstName=Tom&lastName=Jones
var lbl:TextField = new TextField();
var urlRequest:URLRequest = new URLRequest("params.txt");
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);
 
function urlLoader_complete(evt:Event):void {
    lbl.text = urlLoader.data.lastName + "," + urlLoader.data.firstName;
    addChild(lbl);
}

dataFormat

Eigenschaft 
public var dataFormat:String = "text"

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Steuert, ob die heruntergeladenen Daten als Text (URLLoaderDataFormat.TEXT), unformatierte Binärdaten (URLLoaderDataFormat.BINARY) oder URL-kodierte Variablen (URLLoaderDataFormat.VARIABLES) empfangen werden.

Wenn die Eigenschaft dataFormat den Wert URLLoaderDataFormat.TEXT aufweist, wird ein String empfangen, der den Text aus der geladenen Datei enthält.

Wenn die Eigenschaft dataFormat den Wert URLLoaderDataFormat.BINARY aufweist, werden die Daten als ByteArray-Objekt empfangen, das unformatierte Binärdaten enthält.

Wenn die Eigenschaft dataFormat den Wert URLLoaderDataFormat.VARIABLES aufweist, werden die Daten als URLVariables-Objekt empfangen, das URL-kodierte Variablen enthält.

Der Standardwert ist URLLoaderDataFormat.TEXT.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )
Im folgenden Beispiel wird gezeigt, wie Sie externe Textdateien laden können. Verwenden Sie die URLRequest- und URLLoader-Klassen und warten Sie auf das complete-Ereignis. Beispiel bereitgestellt von ActionScriptExamples.com.
var PATH:String = "lorem.txt";
var urlRequest:URLRequest = new URLRequest(PATH);
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT; // default
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);
 
function urlLoader_complete(evt:Event):void {
    textArea.text = urlLoader.data;
}
Konstruktordetails

URLLoader

()Konstruktor
public function URLLoader(request:URLRequest = null)

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Erstellt ein URLLoader-Objekt.

Parameter
request:URLRequest (default = null) — Ein URLRequest-Objekt, das die herunterzuladende URL angibt. Ohne diesen Parameter kann der Ladevorgang nicht gestartet werden. Wenn dieser Parameter angegeben wird, beginnt der Ladevorgang unmittelbar (weitere Informationen finden Sie im Abschnitt zu load).

Verwandte API-Elemente

Methodendetails

addEventListener

()Methode
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. Sie können Ereignis-Listener bei allen Knoten in der Anzeigeliste für eine bestimmte Art von Ereignis, Phase oder Priorität registrieren.

Nachdem Sie einen Ereignis-Listener erfolgreich registriert haben, können Sie seine Priorität nicht durch weitere Aufrufe von addEventListener() ändern. Um die Priorität eines Listeners zu ändern, müssen Sie zunächst removeListener() aufrufen. Anschließend können Sie den Listener mit der neuen Prioritätsstufe erneut aufrufen.

Nach der Registrierung des Listeners haben nachfolgende Aufrufe von addEventListener() mit einem anderen type- oder useCapture-Wert eine separate Listener-Registrierung zur Folge. Wenn Sie beispielsweise zuerst einen Listener registrieren, für den useCapture auf true gesetzt ist, wird dieser nur während der Aufnahmephase aktiv sein. Wenn Sie addEventListener() für dasselbe Listener-Objekt erneut aufrufen, diesmal aber useCapture auf false gesetzt ist, werden zwei separate Listener angelegt: einer, der während der Aufnahmephase aktiv ist und ein zweiter, der während der Ziel- und Bubbling-Phase aktiv ist.

Sie können einen Ereignis-Listener nicht nur für die Ziel- oder Bubbling-Phase registrieren. Die beiden Phasen hängen während der Registrierung immer zusammen, da Bubbling nur für übergeordnete Elemente des Zielknotens gilt.

Wenn Sie einen Ereignis-Listener nicht mehr brauchen, entfernen sie ihn, indem Sie removeEventListener() aufrufen. Andernfalls könnte es zu Speicherproblemen kommen. Ereignis-Listener werden nicht automatisch aus dem Speicher entfernt, da der Garbage Collector den Listener nicht entfernt, solange das auslösende Objekt vorhanden ist (sofern der useWeakReference-Parameter auf true gesetzt ist).

Beim Kopieren einer EventDispatcher-Instanz werden zugewiesene Ereignis-Listener nicht kopiert. (Wenn ein neu angelegter Knoten einen Ereignis-Listener benötigt, müssen Sie den Listener nach dem Erstellen des Knotens zuweisen.) Wenn Sie jedoch eine EventDispatcher-Instanz verschieben, werden zugewiesene Ereignis-Listener ebenfalls verschoben.

Wenn der Ereignis-Listener bei einem Knoten registriert wird, während mit diesem Knoten ein Ereignis durchgeführt wird, so wird der Ereignis-Listener während der aktuellen Phase nicht ausgelöst, kann aber während einer späteren Phase im Ereignisablauf ausgelöst werden, etwa während der Bubbling-Phase.

Wird ein Ereignis-Listener von einem Knoten entfernt, während mit dem Knoten ein Ereignis durchgeführt wird, so wird er von den aktuellen Aktionen immer noch ausgelöst. Nachdem er entfernt worden ist, wird der Ereignis-Listener nicht wieder aufgerufen (es sei denn er wird für spätere Verarbeitungsvorgänge erneut aufgerufen).

Parameter

type:String — Der Ereignistyp.
 
listener:Function — Die Listener-Funktion, die das Ereignis verarbeitet. Diese Funktion muss ein Ereignisobjekt als einzigen Parameter akzeptieren und darf keinen Wert zurückgeben, wie das nachfolgende Beispiel zeigt:
function(evt:Event):void

Der Name der Funktion ist beliebig.

 
useCapture:Boolean (default = false)Bestimmt, ob der Listener in der Erfassungsphase oder in der Ziel- und Bubbling-Phase arbeitet. Ist useCapture auf true gesetzt, so verarbeitet der Listener das Ereignis nur während der Erfassungsphase und nicht während der Ziel- oder Bubbling-Phase. Hat useCapture hingegen den Wert false, verarbeitet der Listener das Ereignis nur während der Ziel- oder Bubbling-Phase. Um auf das Ereignis in allen drei Phasen zu warten, rufen Sie addEventListener() zweimal auf; einmal ist useCapture auf true gesetzt, und beim zweiten Mal hat useCapture den Wert false.
 
priority:int (default = 0) — Die Prioritätsstufe des Ereignis-Listeners. Die Priorität wird durch eine vorzeichenbehaftete 32-Bit-Ganzzahl zugewiesen. Je höher die Zahl, desto höher die Priorität. Alle Listener mit der Priorität n werden vor Listenern mit der Priorität n -1 verarbeitet. Wenn zwei oder mehr Listener die gleiche Priorität aufweisen, werden sie in der Reihenfolge verarbeitet, in der sie hinzugefügt wurden. Die Standardpriorität ist 0.
 
useWeakReference:Boolean (default = false) — Bestimmt, ob der Verweis auf den Listener stark oder schwach ist. Ein starker Verweis (der Standard) verhindert, dass der Listener von einem Garbage Collector entfernt wird. Ein schwacher Verweis hingegen nicht.

Funktionen von Mitgliedern auf Klassenebene werden nicht vom Garbagekollektor entfernt. Daher können Sie useWeakReference für Mitgliedsfunktionen auf Klassenebene auf true setzen, ohne dass sie vom Garbagekollektor entfernt werden. Wenn Sie useWeakReference auf true setzen bei einem Listener, der eine verschachtelte innere Funktion ist, wird die Funktion vom Garbagekollektor entfernt. Indem Sie Verweise auf die innere Funktion erstellen (d. h sie in einer anderen Variable speichern), umgehen Sie die Garbage Collection, sodass die Funktion permanent gespeichert bleibt.

close

()Methode 
public function close():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Schließt den laufenden Ladevorgang. Alle laufenden Ladevorgänge werden sofort beendet. Wenn kein URL-Stream ausgeführt wird, wird ein Fehler ausgegeben.

load

()Methode 
public function load(request:URLRequest):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Sendet und lädt Daten von der angegebenen URL. Die Daten können als Text, unformatierte Binärdaten oder URL-kodierte Variablen empfangen werden, je nachdem, welchen Wert Sie für die Eigenschaft dataFormat festlegen. Beachten Sie, dass „Text“ der Standardwert der Eigenschaft dataFormat ist. Wenn Sie Daten an die angegebene URL senden möchten, können Sie die Eigenschaft data im URLRequest-Objekt festlegen.

Hinweis: Enthält eine geladene Datei Nicht-ASCII-Zeichen (wie z. B. in vielen Sprachen außerhalb des englischen Sprachraums), wird empfohlen, dass Sie die Datei im Format UTF-8 oder UTF-16 und nicht in einem Unicode-fremden Format (z. B. ASCII) speichern.

Eine SWF-Datei innerhalb der lokalen Dateisystem-Sandbox kann keine Daten aus einer Ressource in der Network-Sandbox laden bzw. keine Daten für diese Ressource bereitstellen.

Standardmäßig müssen die aufrufende SWF-Datei und die von Ihnen geladene URL in genau der gleichen Domäne sein. Eine SWF-Datei unter www.adobe.com kann beispielsweise nur Daten laden, die sich ebenfalls unter www.adobe.com befinden. Legen Sie eine URL-Richtliniendatei auf dem Server ab, der die Daten hostet, um Daten aus einer anderen Domäne zu laden.

Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.

Wenn Sie in Flash Player 10 oder höher einen Multipart-Content-Type verwenden (z. B. „multipart/form-data“), der einen Upload enthält (gekennzeichnet durch einen „filename“-Parameter in einem „content-disposition“-Header innerhalb des POST-Body), so unterliegt die POST-Methode den Sicherheitsregeln für Uploads:

  • Der POST-Vorgang muss als Reaktion auf eine durch den Benutzer initiierte Aktion, z. B. Mausklick oder Tastendruck, erfolgen.
  • Ist die POST-Methode domänenübergreifend (das POST-Ziel befindet sich auf einem anderen Server als die SWF-Datei, die die POST-Anforderung sendet), so muss der Zielserver eine URL-Richtliniendatei bereitstellen, die den domänenübergreifenden Zugriff erlaubt.

Für alle mehrteiligen Content-Typen muss ebenfalls die Syntax nach Standard RFC2046 gültig sein. Scheint die Syntax ungültig zu sein, so unterliegt die POST-Methode den Sicherheitsregeln für Uploads.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Parameter

request:URLRequest — Ein URLRequest-Objekt, das die herunterzuladende URL angibt.


Ereignisse
complete:Event — Wird nach dem erfolgreichen Laden von Daten ausgelöst.
 
httpStatus:HTTPStatusEvent — Wenn der Zugriff über HTTP erfolgt und die aktuelle Flash Player-Umgebung den Empfang von Statuscodes unterstützt, werden diese Ereignisse möglicherweise zusätzlich zu allen complete- oder errorEreignissen empfangen.
 
ioError:IOErrorEvent — Der Ladevorgang konnte nicht abgeschlossen werden.
 
progress:ProgressEvent — Wird ausgelöst, wenn während des Download-Vorgangs Daten empfangen werden.
 
securityError:SecurityErrorEvent — Bei einem Ladevorgang wurde versucht, Daten von einem Server außerhalb der Sicherheitssandbox der aufrufenden Funktion abzurufen. Sie können dies umgehen, indem Sie eine Richtliniendatei auf dem Server verwenden.
 
securityError:SecurityErrorEvent — Ein Ladevorgang versuchte, eine SWZ-Datei (Adobe-Plattformkomponente) zu laden, aber das Zertifikat ist entweder ungültig oder der Digest stimmt nicht mit der Komponente überein.
 
open:Event — Wird beim Start eines Ladevorgangs ausgelöst.
 
httpResponseStatus:HTTPStatusEvent — Wird ausgelöst, wenn ein Aufruf der load()-Methode versucht, über HTTP auf Daten zuzugreifen und Adobe AIR den Statuscode für die Anforderung erkennen und zurückgeben kann.

Auslöser
ArgumentError — Bestimmte nicht zulässige HTTP-Anforderungsheader sind möglicherweise in URLRequest.requestHeader-Objekten nicht enthalten. Weitere Informationen finden Sie in der Beschreibung der URLRequestHeader-Klasse.
 
MemoryError — Dieser Fehler kann folgende Ursachen haben: 1) Flash Player oder AIR kann den URLRequest.data-Parameter nicht von UTF8 in MBCS konvertieren. Dieser Fehler trifft zu, wenn das an load() übergebene URLRequest-Objekt auf die Ausführung eines GET-Vorgangs eingestellt ist und wenn System.useCodePage auf true gesetzt ist. 2) Flash Player oder AIR kann POST keinen Speicher zuweisen. Dieser Fehler trifft zu, wenn das an load übergebene URLRequest-Objekt auf die Ausführung eines POST-Vorgangs eingestellt ist.
 
SecurityError — Über lokale nicht vertrauenswürdige Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können dies umgehen, indem Sie die entsprechende Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.
 
SecurityError — Sie versuchen, eine Verbindung mit einem normalerweise reservierten Port herzustellen. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.
 
TypeError — Der Wert des request-Parameters oder der Eigenschaft URLRequest.url des übergebenen URLRequest-Objekts ist null.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

Im folgenden Beispiel wird eine XML-Datei geladen und der Inhalt der jeweils ersten Argumente der Elemente wird in einem Textfeld angezeigt.

Es wird ein URLRequest-Objekt erstellt, um den Speicherort der XML-Datei anzugeben, die sich in diesem Beispiel im selben Verzeichnis wie die SWF-Datei befindet. Die Datei wird in einen try...catch-Block geladen, um Fehler abzufangen, die möglicherweise auftreten. (Hier werden SecurityError-Fehler abgefangen.) Wenn ein IO_ERROR-Ereignis eintritt, wird die errorHandler()-Methode aufgerufen, die eine Fehlermeldung in das Textfeld xmlTextField schreibt. Nachdem die Daten aus der XML-Datei empfangen wurden und in der data-Eigenschaft des URLLoader-Objekts loader platziert wurden, wird das Event.COMPLETE-Ereignis ausgelöst, und die loaderCompleteHandler()-Methode wird aufgerufen.

In der loaderCompleteHandler()-Methode wird ein try...catch-Block verwendet, um ggf. Parsingfehler, die beim Konvertieren der geladenen Daten aus der Datei in ein XML-Objekt auftreten, abzufangen. Die readNodes()-Methode geht rekursiv durch alle Elemente in den Knoten des XML-Dokuments und hängt das Textfeld xmlTextField mit einer Liste der ersten Attribute aller Elemente an.

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.xml.*;
    import flash.events.IOErrorEvent;
  
    public class URLLoader_loadExample extends Sprite {
        private var xmlTextField:TextField = new TextField();
        private var externalXML:XML;    
        private var loader:URLLoader;

        public function URLLoader_loadExample() {
            var request:URLRequest = new URLRequest("xmlFile.xml");

            loader = new URLLoader();
            
            try {
                loader.load(request);
            }
            catch (error:SecurityError)
            {
                trace("A SecurityError has occurred.");
            }

             loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);

            xmlTextField.x = 10;
            xmlTextField.y = 10;
            xmlTextField.background = true;
            xmlTextField.autoSize = TextFieldAutoSize.LEFT;

            addChild(xmlTextField);
        }

        private function loaderCompleteHandler(event:Event):void {

                try {
                    externalXML = new XML(loader.data);
                    readNodes(externalXML);    
                } catch (e:TypeError) {
                    trace("Could not parse the XML file.");
                }
        }

        private function readNodes(node:XML):void {

                for each (var element:XML in node.elements()) {
                    xmlTextField.appendText(element.attributes()[0] + "\n");

                    readNodes(element);
                }    
        }

        private function errorHandler(e:IOErrorEvent):void {
            xmlTextField.text = "Had problem loading the XML File.";
        }
    }
}
Ereignisdetails

complete

Ereignis
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event.COMPLETE

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, nachdem alle empfangenen Daten dekodiert und in der Eigenschaft „data“ des URLLoader-Objekts abgelegt wurden. Nach der Auslösung dieses Ereignisses können Sie auf die empfangenen Daten zugreifen.

Die Event.COMPLETE-Konstante definiert den Wert der type-Eigenschaft eines complete-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, dessen Ladevorgang beendet ist.

Verwandte API-Elemente

httpResponseStatus

Ereignis  
Ereignisobjekttyp: flash.events.HTTPStatusEvent
Eigenschaft HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, AIR 1.0, Flash Lite 4

Wird ausgelöst, wenn ein Aufruf der load()-Methode versucht, über HTTP auf Daten zuzugreifen und Adobe AIR den Statuscode für die Anforderung erkennen und zurückgeben kann.

Anders als das httpStatus-Ereignis wird das httpResponseStatus-Ereignis ausgelöst, bevor Antwortdaten vorliegen. Außerdem enthält das httpResponseStatus-Ereignis Werte für die Eigenschaften responseHeaders und responseURL (die für ein httpStatus-Ereignis nicht definiert sind). Beachten Sie, dass das Ereignis httpResponseStatus (falls vorhanden) vor (und zusätzlich zu) jedem complete- oder error-Ereignis gesendet wird.

Die HTTPStatusEvent.HTTP_RESPONSE_STATUS-Konstante definiert den Wert der type-Eigenschaft eines httpResponseStatus-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
responseURLDie URL, von der die Antwort zurückgegeben wurde.
responseHeadersDie Antwortheader, die die Antwort zurückgegeben hat, als Array von URLRequestHeader-Objekten.
statusDer vom Server zurückgegebene HTTP-Statuscode.
redirectedGibt an, ob die Antwort das Ergebnis einer Weiterleitung ist.
targetDas Netzwerkobjekt, das den HTTP-Statuscode empfängt.

Verwandte API-Elemente

httpStatus

Ereignis  
Ereignisobjekttyp: flash.events.HTTPStatusEvent
Eigenschaft HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_STATUS

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, wenn ein Aufruf von URLLoader.load() versucht, über HTTP auf Daten zuzugreifen. Bei Inhalt, der in Flash Player ausgeführt wird, wird dieses Ereignis nur ausgelöst, wenn die aktuelle Flash Player-Umgebung den Statuscode für die Anforderung erkennen und zurückgeben kann. (Diese Informationen können in einigen Browser-Umgebungen möglicherweise nicht bereitgestellt werden.) Beachten Sie, dass das Ereignis httpStatus (falls vorhanden) vor (und zusätzlich zu) jedem complete- oder error-Ereignis gesendet wird.

Die HTTPStatusEvent.HTTP_STATUS-Konstante definiert den Wert der type-Eigenschaft eines httpStatus-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
statusDer vom Server zurückgegebene HTTP-Statuscode.
targetDas Netzwerkobjekt, das den HTTP-Statuscode empfängt.

Verwandte API-Elemente

ioError

Ereignis  
Ereignisobjekttyp: flash.events.IOErrorEvent
Eigenschaft IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, wenn bei einem URLLoader.load()-Aufruf ein schwerwiegender Fehler auftritt und der Download abgebrochen wird.

Definiert den Wert der Eigenschaft type eines ioError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
errorIDDie Referenznummer des spezifischen Fehlers (nur AIR).
targetDas Netzwerkobjekt, bei dem der Eingabe/Ausgabe-Fehler auftritt.
textDer als Fehlermeldung anzuzeigende Text.

Verwandte API-Elemente

open

Ereignis  
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event.OPEN

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, wenn der Download-Vorgang nach dem Aufruf der Methode URLLoader.load() gestartet wird.

Die Event.OPEN-Konstante definiert den Wert der type-Eigenschaft eines open-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, über das eine Verbindung geöffnet wurde.

Verwandte API-Elemente

progress

Ereignis  
Ereignisobjekttyp: flash.events.ProgressEvent
Eigenschaft ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, wenn während des Download-Vorgangs Daten empfangen werden.

Beachten Sie, dass Sie bei Verwendung eines URLLoader-Objekts erst dann auf die Daten zugreifen können, wenn der Ladevorgang abgeschlossen ist. In diesem Fall dient das progress-Ereignis lediglich zur Benachrichtigung über den Fortschritt des Download-Vorgangs. Verwenden Sie ein URLStream-Objekt, um vor Abschluss des Ladevorgangs auf die Daten zuzugreifen.

Definiert den Wert der Eigenschaft type eines progress-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
bytesLoadedDie Anzahl der geladenen Elemente oder Byte zu dem Zeitpunkt, zu dem der Listener das Ereignis verarbeitet.
bytesTotalDie Gesamtanzahl der Elemente oder Byte, die bei einem erfolgreichen Ladevorgang schließlich geladen werden.
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Objekt, dessen Fortschritt protokolliert wird.

Verwandte API-Elemente

securityError

Ereignis  
Ereignisobjekttyp: flash.events.SecurityErrorEvent
Eigenschaft SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, wenn ein URLLoader.load()-Aufruf versucht, Daten von einem Server außerhalb der Sicherheitssandbox zu laden. Wird auch aufgelöst, wenn bei einem URLLoader.load()-Aufruf versucht wird, eine SWZ-Datei zu laden und das Zertifikat ungültig ist oder der Digest-String nicht mit der Komponente übereinstimmt.

Die Konstante SecurityErrorEvent.SECURITY_ERROR definiert den Wert der type-Eigenschaft eines securityError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, das den Sicherheitsfehler ausgibt.
textDer als Fehlermeldung anzuzeigende Text.

Verwandte API-Elemente

URLLoaderExample.as

Im folgenden Beispiel werden die in einer lokalen Textdatei gefundenen Daten geladen und angezeigt. Des Weiteren werden Ereignisverarbeitungsinformationen erfasst.

Hinweis: Legen Sie zur Ausführung des Beispiels eine Datei mit dem Namen „urlLoaderExample.txt“ in dem Verzeichnis ab, in dem sich die SWF-Datei befindet. Diese Datei darf nur die folgende Textzeile enthalten: answer=42&question=unknown

Der Beispielcode führt folgende Schritte aus:

  1. Die Konstruktorfunktion erstellt eine URLLoader-Instanz mit dem Namen loader und eine URLRequest-Instanz mit dem Namen request, wobei es sich um den Standort und den Namen der zu ladenden Datei handelt.
  2. Das Objekt loader wird an die Methode configureListeners() übergeben, die für jedes unterstützte URLLoader-Ereignis Listener hinzufügt.
  3. Dann wird das Objekt request an die Methode loader.load() übergeben, die die Textdatei lädt.
  4. Nach Abschluss des Ladevorgangs wird das Event.COMPLETE-Ereignis ausgelöst, das wiederum die Methode completeHandler() auslöst. Die Methode completeHandler() erstellt ein URLVariables-Objekt aus dem aus der Datei geladenen Text. Das URLVariables-Objekt konvertiert URL-kodierte Name/Wert-Paare in ActionScript-Eigenschaften, um die Bearbeitung der geladenen Daten zu vereinfachen.
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;

    public class URLLoaderExample extends Sprite {
        
        private loader:URLoader;
        public function URLLoaderExample() {
            loader = new URLLoader();
            configureListeners(loader);

            var request:URLRequest = new URLRequest("urlLoaderExample.txt");
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
            }
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
    
            var vars:URLVariables = new URLVariables(loader.data);
            trace("The answer is " + vars.answer);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.