Packageflash.net
Classepublic final class URLRequest
HéritageURLRequest Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

La classe URLRequest capture toutes les informations dans une même requête HTTP. Les objets URLRequest sont transmis aux méthodes load() des classes Loader, URLStream et URLLoader et autres opérations de chargement pour lancer les téléchargements d'URL. Ils sont également transmis aux méthodes upload() et download() de la classe FileReference.

Un fichier SWF du sandbox local avec système de fichiers risque de ne pas charger des données depuis une ressource située dans le sandbox réseau, ni lui en fournir.

Par défaut, le fichier SWF appelant et l'URL chargée doivent se trouver dans le même domaine. Par exemple, un fichier SWF à l'adresse www.adobe.com peut charger uniquement des données provenant de sources situées également à l'adresse www.adobe.com. Pour charger des données à partir d'un autre domaine, placez un fichier de régulation d'URL sur le serveur hébergeant les données.

Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité de l'application (contenu installé avec l'application AIR) n'est pas soumis à ces restrictions de sécurité. Dans le cas de contenu s'exécutant dans Adobe AIR, les fichiers du sandbox de sécurité de l'application peuvent accéder aux URL à l'aide de l'un des modèles d'URL suivants :

Le contenu qui s'exécute dans Adobe AIR et qui n'est pas dans le sandbox de sécurité de l'application observe les mêmes restrictions que le contenu qui s'exécute dans le navigateur (dans Flash Player), et le chargement est régi par le domaine du contenu et par les autorisations accordées dans les fichiers de régulation d'URL.

Pour plus d'informations sur la sécurité, consultez les références suivantes :

Consulter les exemples

Voir aussi

FileReference
URLRequestHeader
URLRequestDefaults
URLLoader
URLStream
Classe HTMLLoader
Principes de base de la mise en réseau et de la communication


Propriétés publiques
 PropriétéDéfini par
  AIR-only authenticate : Boolean
Indique si les requêtes d'authentification doivent être traitées (true) ou non (false) pour cette requête.
URLRequest
  AIR-only cacheResponse : Boolean
Indique si les données de réponse satisfaisantes doivent être mises en mémoire cache pour cette requête.
URLRequest
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
  contentType : String
Type MIME du contenu dans la propriété data.
URLRequest
  data : Object
Objet contenant des données à transmettre avec la demande d'URL.
URLRequest
  digest : String
Chaîne qui identifie de façon unique le composant de la plate-forme Adobe signé devant être enregistré dans (ou extrait de) la mémoire cache de Flash Player.
URLRequest
  AIR-only followRedirects : Boolean
Indique si des redirections sont utilisées (true) ou non (false).
URLRequest
  AIR-only manageCookies : Boolean
Indique si la pile de protocole HTTP doit gérer les cookies pour cette requête.
URLRequest
  method : String
Spécifie la méthode de soumission du formulaire HTTP.
URLRequest
 Inheritedprototype : Object
[statique] Référence à l'objet prototype d'un objet de classe ou fonction.
Object
  requestHeaders : Array
Tableau d'en-tête de requête HTTP à ajouter à la fin de la requête HTTP.
URLRequest
  url : String
URL à demander.
URLRequest
  AIR-only useCache : Boolean
Indique si le cache local doit être consulté avant que URLRequest récupère les données.
URLRequest
  AIR-only userAgent : String
Indique la chaîne agent utilisateur à utiliser dans la requête HTTP.
URLRequest
Méthodes publiques
 MéthodeDéfini par
  
URLRequest(url:String = null)
Crée un objet URLRequest.
URLRequest
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
Détails de la propriété
AIR-only authenticatepropriété
authenticate:Boolean  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Indique si les requêtes d'authentification de cette requête doivent être traitées (true) ou non (false). Si la valeur false est définie, les authentifications par stimulation renvoient une erreur HTTP.

Les méthodes d'authentification prises en charge sont les suivantes :

Remarque : les méthodes FileReference.upload(), FileReference.download() et HTMLLoader.load() ne prennent pas en charge la propriété URLRequest.authenticate.

La valeur par défaut est true.



Implémentation
    public function get authenticate():Boolean
    public function set authenticate(value:Boolean):void

Valeur émise
SecurityError — L'appelant ne se trouve pas dans le sandbox de sécurité de l'application AIR.

Voir aussi

AIR-only cacheResponsepropriété 
cacheResponse:Boolean  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Indique si les données de réponse satisfaisantes doivent être mises en mémoire cache pour cette requête. Lorsque la valeur true est définie, l'application AIR utilise le cache HTTP du système d'exploitation.

Remarque : la méthode HTMLLoader.load() ne prend pas en charge la propriété URLRequest.cacheResponse.

La valeur par défaut est true.



Implémentation
    public function get cacheResponse():Boolean
    public function set cacheResponse(value:Boolean):void

Valeur émise
SecurityError — L'appelant ne se trouve pas dans le sandbox de sécurité de l'application AIR.

Voir aussi

contentTypepropriété 
contentType:String  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Type MIME du contenu dans la propriété data.

La valeur par défaut est application/x-www-form-urlencoded.

Remarque : les méthodes FileReference.upload(), FileReference.download() et HTMLLoader.load() ne prennent pas en charge la propriété URLRequest.contentType.

Lors de l'envoi d'une requête POST, les valeurs des propriétés contentType et data doivent correctement correspondre. La valeur de la propriété contentType explique aux serveurs comment interpréter la valeur de la propriété data.

Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple "multipart/form-data") qui contient un chargement (indiqué par un paramètre "filename" dans un en-tête "content-disposition" au sein du corps POST), l'opération POST est soumise aux règles de sécurité appliquées aux chargements :

Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s'avère incorrecte, l'opération POST est soumise aux règles de sécurité appliquées aux chargements.



Implémentation
    public function get contentType():String
    public function set contentType(value:String):void

Voir aussi

datapropriété 
data:Object  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Objet contenant des données à transmettre avec la demande d'URL.

Cette propriété s'utilise en combinaison avec la propriété method. Lorsque la valeur de la propriété method est GET, la valeur de data est ajoutée à la valeur de URLRequest.url, avec une syntaxe de chaîne de requête HTTP. Lorsque la valeur de la propriété method est POST (ou autre que GET), la valeur de data est transmise dans le corps de la requête HTTP.

L'API URLRequest offre une prise en charge POST binaire et gère les variables de code URL, ainsi que les chaînes. Les objets de données peuvent être des objets ByteArray, URLVariables ou String.

L'utilisation des données varie en fonction du type d'objet :

Les données ne sont pas envoyées tant qu'une méthode, telle que navigateToURL() ou FileReference.upload(), utilise l'objet URLRequest.

Remarque : la valeur de contentType doit correspondre au type de données défini dans la propriété data. Consultez la remarque de la description de la propriété contentType.



Implémentation
    public function get data():Object
    public function set data(value:Object):void

Voir aussi


Exemple
L'exemple suivant ouvre l'application distante hébergée à l'adresse http://www.[yourDomain].com/application.jsp dans une nouvelle fenêtre de navigateur et transmet à l'application des données relatives à une session utilisateur, capturées dans un objet URLVariables.

Vous trouverez ci-dessous des extraits de l'exemple :

  1. La fonction constructeur crée une occurrence de URLRequest nommée request, en utilisant l'URL de l'application distante comme paramètre.
  2. Un objet URLVariables est créé et des valeurs sont attribuées à deux de ses propriétés.
  3. L'objet URLVariables est affecté à la propriété data de l'objet URLRequest.
  4. L'exemple appelle navigateToURL, qui ouvre une nouvelle fenêtre de navigateur vers l'URL de l'application distante.

Remarque : pour exécuter l'exemple, l'URL de l'application distante de l'exemple doit être remplacée par une URL opérationnelle. En outre, du code serveur serait nécessaire pour traiter les informations capturées par Flash Player dans l'objet URLVariables.

package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;

    public class URLVariablesExample extends Sprite {

        public function URLVariablesExample() {
            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            navigateToURL(request);
        }
    }
}
digestpropriété 
digest:String  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9.0.115.0

Chaîne qui identifie de façon unique le composant de la plate-forme Adobe signé devant être enregistré dans (ou extrait de) la mémoire cache de Flash Player. Un composant de la plate-forme Adobe est un fichier signé (un fichier SWZ) qui renferme le contenu SWF mis en cache de façon permanente sur l'ordinateur d'un utilisateur. Tous les fichiers SWZ sont signés par Adobe. Un résumé correspond à un seul fichier mis en cache ; si vous modifiez ce fichier de quelque manière que ce soit, son résumé risque de subir des modifications imprévisibles. L'utilisation d'un résumé vous permet de vérifier le fichier mis en cache dans plusieurs domaines. Deux fichiers possédant le même résumé correspondent au même fichier ; ce n'est pas le cas lorsque deux fichiers possèdent des résumés différents. Il est pratiquement impossible de créer un fichier pour « espionner » un résumé et simuler un autre résumé.

Le résumé est basé sur un algorithme Digest sécurisé SHA-256 (64 caractères en notation hexadécimale).

Par exemple, le kit de développement Flex comprend un fichier SWZ pour le cadre d'application Flex (et il fournit la chaîne digest pour ce fichier SWZ). Vous pouvez envoyer ce fichier SWZ au serveur Web et le charger dans votre fichier SWF (à l'aide de la méthode load() d'un objet URLLoader). Si l'ordinateur de l'utilisateur final possède déjà le fichier SWZ mis en cache correspondant, l'application l'utilise. (Un fichier SWZ « correspond » lorsque son digest correspond à celui que vous avez fourni.) Dans le cas contraire, l'application télécharge le fichier SWZ à partir de l'URL que vous avez spécifiée.

Définissez le paramètre digest uniquement dans un objet URLRequest utilisé lors d'un appel de la méthode URLLoader.load() en vue de charger un fichier SWZ. Si la propriété digest d'un objet URLRequest est définie alors qu'elle est utilisée dans d'autres méthodes, l'application émet une exception IOError.



Implémentation
    public function get digest():String
    public function set digest(value:String):void

Valeur émise
ArgumentError — Le résumé fourni ne correspond pas à celui du fichier extrait à partir du fichier signé téléchargé ou du fichier signé chargé hors de la mémoire cache. L'application renvoie également cette erreur si le résumé fourni est de longueur incorrecte ou s'il contient des caractères non valides (non hexadécimaux).

Exemple
L'exemple suivant charge un fichier distant dans la mémoire cache. Une fois le chargement terminé, le tableau d'octets contient le fichier actuel (et non le fichier signé). L'exemple suivant termine l'opération de chargement en appelant loadBytes() :
var myURLReq:URLRequest = new URLRequest();
myURLReq.url = "http://yourdomain/users/jdoe/test01/_rsc/Automated/AssetCaching_rsc/test01/rsl.swz";
myURLReq.digest = "3B0AA28C7A990385E044D80F5637FB036317BB41E044D80F5637FB036317BB41";
var myURLLoader:URLLoader = new URLLoader();
myURLLoader.dataFormat = URLLoaderDataFormat.BINARY;
myURLLoader.addEventListener("complete", onC);

myURLLoad.load(myURLReq);

function onC(e) {
    var someLoader:Loader = new Loader();
    addChild(someLoader);
    someLoader.loadBytes((ByteArray)(myURLLoad.data)); 
}
AIR-only followRedirectspropriété 
followRedirects:Boolean  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Indique si des redirections sont utilisées (true) ou non (false ).

Remarque : les méthodes FileReference.upload(), FileReference.download() et HTMLLoader.load() ne prennent pas en charge la propriété URLRequest.followRedirects.

La valeur par défaut est true.



Implémentation
    public function get followRedirects():Boolean
    public function set followRedirects(value:Boolean):void

Valeur émise
SecurityError — L'appelant ne se trouve pas dans le sandbox de sécurité de l'application AIR.

Voir aussi

AIR-only manageCookiespropriété 
manageCookies:Boolean  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Indique si la pile de protocole HTTP doit gérer les cookies pour cette requête. Lorsque la valeur true est définie, les cookies sont ajoutés à la requête et les cookies de réponse sont pris en compte. Si la valeur false est définie, les cookies ne sont pas ajoutés à la requête et les cookies de réponse ne sont pas pris en compte ; toutefois, les utilisateurs peuvent gérer eux-mêmes les cookies en manipulant directement l'en-tête.

Sous Mac OS, les cookies sont partagés avec Safari. Pour supprimer les cookies sous Mac OS :

  1. Ouvrez Safari.
  2. Choisissez Safari > Préférences, puis cliquez sur le panneau Sécurité.
  3. Cliquez sur le bouton Afficher les cookies.
  4. Cliquez sur le bouton Tout supprimer.

Pour supprimer les cookies sous Windows :

  1. Dans la boîte de dialogue Propriétés Internet, cliquez sur l'onglet Général.
  2. Cliquez sur le bouton Supprimer les cookies.

La valeur par défaut est true.



Implémentation
    public function get manageCookies():Boolean
    public function set manageCookies(value:Boolean):void

Valeur émise
SecurityError — L'appelant ne se trouve pas dans le sandbox de sécurité de l'application AIR.

Voir aussi

methodpropriété 
method:String  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Spécifie la méthode de soumission du formulaire HTTP.

Dans le cas de contenu SWF s'exécutant dans Flash Player (dans le navigateur), cette propriété est limitée à des opérations GET ou POST, et les valeurs valides sont URLRequestMethod.GET ou URLRequestMethod.POST.

Dans le cas de contenu s'exécutant dans Adobe AIR, vous pouvez utiliser n'importe quelle valeur de chaîne si le contenu est dans le sandbox de sécurité de l'application. Sinon, comme dans le cas de contenu s'exécutant dans Flash Player, vous êtes limité(e) aux opérations GET ou POST .

Pour le contenu s'exécutant dans Adobe AIR, lors de l'utilisation de la fonction navigateToURL(), le moteur d'exécution traite un objet URLRequest qui utilise la méthode POST (objet dont la propriété method est définie sur URLRequestMethod.POST) comme s'il utilisait la méthode GET.

Remarque : dans le cas d'une exécution dans Flash Player et si la forme référencée n'a pas de corps, Flash Player utilise automatiquement une opération GET, même si la méthode est définie sur URLRequestMethod.POST. Il est donc conseillé de toujours inclure un corps factice pour être certain que la méthode correcte soit utilisée.

La valeur par défaut est URLRequestMethod.GET.



Implémentation
    public function get method():String
    public function set method(value:String):void

Valeur émise
ArgumentError — Si le paramètre value n'est pas URLRequestMethod.GET ou URLRequestMethod.POST.

Voir aussi


Exemple
L'exemple suivant ouvre l'application distante hébergée à l'adresse http://www.[yourDomain].com/application.jsp dans une nouvelle fenêtre de navigateur et transmet à l'application des données relatives à une session utilisateur, capturées dans un objet URLVariables. Il définit explicitement la valeur de la propriété URLRequest.method sur URLRequestMethod.POST.

Vous trouverez ci-dessous des extraits de l'exemple :

  1. La fonction constructeur crée une occurrence de URLRequest nommée request, en utilisant l'URL de l'application distante comme paramètre.
  2. Un objet URLVariables est créé et des valeurs sont attribuées à deux de ses propriétés.
  3. L'objet URLVariables est affecté à la propriété data de l'objet URLRequest.
  4. La valeur de la propriété URLRequest.method est définie sur URLRequestMethod.POST.
  5. L'exemple appelle navigateToURL, qui ouvre une nouvelle fenêtre de navigateur vers l'URL de l'application distante.

Remarque : pour exécuter l'exemple, l'URL de l'application distante de l'exemple doit être remplacée par une URL opérationnelle. En outre, du code serveur serait nécessaire pour traiter les informations capturées par Flash Player dans l'objet URLVariables.

package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;

    public class URLRequest_method extends Sprite {

        public function URLRequest_method() {
            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);
            
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            request.method = URLRequestMethod.POST;
            
            navigateToURL(request);
        }
    }
}
requestHeaderspropriété 
requestHeaders:Array  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Tableau d'en-tête de requête HTTP à ajouter à la fin de la requête HTTP. Le tableau se compose d'objets URLRequestHeader. Tous les objets du tableau doivent être de type URLRequestHeader et contenir une chaîne de nom et une chaîne de valeur, comme suit :

var rhArray:Array = new Array(new URLRequestHeader("Content-Type", "text/html"));

Flash Player et le moteur d'exécution AIR imposent certaines restrictions sur les en-têtes de requête. Pour plus d'informations, consultez la description de la classe URLRequestHeader.

Toutes les méthodes qui acceptent des paramètres URLRequest ne prennent pas en charge la propriété requestHeaders ; consultez la documentation de la méthode que vous appelez. Par exemple, les méthodes FileReference.upload() et FileReference.download() ne prennent pas en charge la propriété URLRequest.requestHeaders.

Du fait des limites des navigateurs, les en-têtes de requête HTTP personnalisées ne sont prises en charge que pour les requêtes POST, pas pour les requêtes GET.



Implémentation
    public function get requestHeaders():Array
    public function set requestHeaders(value:Array):void

Voir aussi

urlpropriété 
url:String  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

URL à demander.

Veillez à coder tous les caractères définis comme non fiables dans le document Uniform Resource Locator (http://www.faqs.org/rfcs/rfc1738.html) ou ceux réservés dans le modèle URL de l'objet URLRequest (s'ils ne sont pas utilisés comme caractères réservés). Utilisez « %25 » comme symbole du pourcentage (%) et « %23 » comme signe numérique (#), comme dans l'exemple suivant : « http://www.example.com/orderForm.cfm?item=%23B-3&discount=50%25 ».

Par défaut, l'URL doit être dans le même domaine que le fichier appelant, sauf si le contenu s'exécute dans le sandbox de sécurité de l'application Adobe AIR. Pour charger des données à partir d'un autre domaine, placez un fichier de régulation d'URL dans le serveur qui héberge les données. Pour plus d'informations, consultez la description de la classe URLRequest.

Dans le cas de contenu s'exécutant dans Adobe AIR, les fichiers du sandbox de sécurité de l'application, à savoir les fichiers installés avec l'application AIR, peuvent accéder aux URL à l'aide de l'un des modèles d'URL suivants :

Remarque : IPv6 (Internet Protocol version 6) est pris en charge dans AIR et dans Flash Player 9.0.115.0 et versions ultérieures. IPv6 est une version du protocole IP (Internet Protocol) qui prend en charge les adresses 128 bits (amélioration du protocole IPv4 précédent qui prend en charge les adresses 32 bits). Vous devrez peut-être activer IPv6 sur vos interfaces de mise en réseau. Pour plus d'informations, consultez l'Aide du système d'exploitation hébergeant les données. Si IPv6 est pris en charge sur le système hébergeant, vous pouvez spécifier des adresses littérales IPv6 numériques dans les URL entre crochets ([]), comme suit :

rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]:1935/test



Implémentation
    public function get url():String
    public function set url(value:String):void

Voir aussi

AIR-only useCachepropriété 
useCache:Boolean  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Indique si le cache local doit être consulté avant que URLRequest récupère les données.

Remarque : la méthode HTMLLoader.load() ne prend pas en charge la propriété URLRequest.useCache.

La valeur par défaut est true.



Implémentation
    public function get useCache():Boolean
    public function set useCache(value:Boolean):void

Valeur émise
SecurityError — L'appelant ne se trouve pas dans le sandbox de sécurité de l'application AIR.

Voir aussi

AIR-only userAgentpropriété 
userAgent:String  [lecture-écriture]

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0

Indique la chaîne agent utilisateur à utiliser dans la requête HTTP.

La valeur par défaut correspond à la même chaîne agent utilisateur utilisée par Flash Player, différente dans Mac, Linux et Windows.

Remarque : cette propriété n'a pas d'incidence sur la chaîne agent utilisateur lors de l'utilisation de l'objet URLRequest avec la méthode load() d'un objet HTMLLoader. Pour définir la chaîne userAgent d'un objet HTMLLoader, définissez la propriété userAgent de l'objet HTMLLoader ou la propriété statique URLRequestDefaults.userAgent.



Implémentation
    public function get userAgent():String
    public function set userAgent(value:String):void

Valeur émise
SecurityError — L'appelant ne se trouve pas dans le sandbox de sécurité de l'application AIR.

Voir aussi

Détails du constructeur
URLRequest()Constructeur
public function URLRequest(url:String = null)

Version du langage: ActionScript 3.0
Versions du moteur d'exécution: AIR 1.0 Flash Player 9

Crée un objet URLRequest. Si System.useCodePage correspond à true, la requête est codée via la page de code système, plutôt que le format Unicode. Si System.useCodePage correspond à false, la requête est codée via le format Unicode, plutôt que la page de code système.

Paramètres
url:String (default = null) — URL à demander. Vous pourrez définir l'URL ultérieurement à l'aide de la propriété url.

Voir aussi

Exemples Utilisation des exemples
URLRequestExample.as

L'exemple suivant crée un nouvel objet Loader et lui transmet un objet URLRequest contenant le chemin vers un fichier XML. Si le chargement réussit, un événement complete est distribué et les données du fichier XML sont écrites dans le résultat. Des gestionnaires d'événement supplémentaires capturent d'autres événements, y compris des événements d'erreur.

Pour exécuter cet exemple, placez un fichier nommé XMLFile.xml dans le même répertoire que votre fichier SWF.

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;

    public class URLRequestExample extends Sprite {

        public function URLRequestExample() {
            var loader:URLLoader = new URLLoader();
            configureListeners(loader);

            var request:URLRequest = new URLRequest("XMLFile.xml");
            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);
        }

        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);
        }
    }
}