Packageflash.net
Classepublic class URLLoader
HéritageURLLoader Inheritance EventDispatcher Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe URLLoader télécharge des données à partir d’une URL sous forme de texte, de données binaires ou de variables de code URL. Elle est utile pour télécharger des fichiers texte, XML ou d'autres informations destinées à être utilisées dans une application de données dynamique.

Un objet URLLoader télécharge toutes les données d'une URL avant de les rendre accessibles pour ActionScript. Il fournit des notifications sur la progression du téléchargement, que vous pouvez connaître en surveillant les propriétés bytesLoaded et bytesTotal, ainsi que les événements distribués.

Pour utiliser cette méthode, tenez compte du modèle de sécurité d’Adobe® Flash® Player :

Pour Flash Player 8 et les versions ultérieures :

Pour Flash Player 7 et les versions ultérieures :

Pour plus d'informations, consultez les références suivantes :

Pour les fichiers SWF lus par une version antérieure à Flash Player 7, l’url doit correspondre au superdomaine du fichier SWF envoyant cet appel. Un superdomaine est dérivé par suppression du composant le plus à gauche de l'URL d'un fichier. Par exemple, un fichier SWF à l'adresse www.adobe.com peut charger des données provenant de sources à l'adresse store.adobe.com, car les deux fichiers se trouvent dans le même superdomaine, adobe.com.

Consulter les exemples

Voir aussi

URLRequest
URLVariables
URLStream
Lecture de documents XML externes
Utilisation de données externes


Propriétés publiques
 PropriétéDéfini par
  bytesLoaded : uint = 0
Indique le nombre d’octets chargés jusqu’ici au cours du chargement.
URLLoader
  bytesTotal : uint = 0
Indique le nombre total d'octets dans les données téléchargées.
URLLoader
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
  data : *
Données reçues par le biais de l'opération de chargement.
URLLoader
  dataFormat : String = "text"
Contrôle si les données téléchargées sont reçues sous forme de texte (URLLoaderDataFormat.TEXT), de données binaires brutes (URLLoaderDataFormat.BINARY) ou de variables de code URL (URLLoaderDataFormat.VARIABLES).
URLLoader
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
URLLoader(request:URLRequest = null)
Crée un objet URLLoader.
URLLoader
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
Ferme l’opération de chargement en cours.
URLLoader
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l'objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 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
  
load(request:URLRequest):void
Envoie et charge les données à partir de l'URL spécifiée.
URLLoader
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
 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
 Inherited
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.
EventDispatcher
Evénements
 Evénement Synthèse Défini par
 Inherited Distribué lorsque Flash Player a le focus du système d’exploitation et devient actif.EventDispatcher
   Distribué après le décodage de toutes les données reçues et leur placement dans la propriété data de l'objet URLLoader.URLLoader
 Inherited Distribué lorsque Flash Player perd le focus du système d’exploitation et devient inactif.EventDispatcher
   Distribué si un appel de la méthode URLLoader.load() tente d'accéder à des données via HTTP et si l'environnement Flash Player actuel est capable de détecter et de renvoyer le code d'état de la requête.URLLoader
   Distribué si un appel de la méthode URLLoader.load() provoque une erreur fatale qui met fin au téléchargement.URLLoader
   Distribué lorsque l'opération de téléchargement commence suite à un appel de la méthode URLLoader.load().URLLoader
   Distribué lorsque des données sont reçues pendant l'opération de téléchargement.URLLoader
   Distribué si un appel de la méthode URLLoader.load() tente de charger des données d'un serveur en dehors d'un sandbox de sécurité.URLLoader
Détails des propriétés
bytesLoadedpropriété
public var bytesLoaded:uint = 0

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Indique le nombre d’octets chargés jusqu’ici au cours du chargement.

bytesTotalpropriété 
public var bytesTotal:uint = 0

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Indique le nombre total d'octets dans les données téléchargées. Cette propriété contient 0 lorsque le chargement est en cours et est renseignée au terme de ce dernier. Également, si un en-tête Content-Length est manquant, bytesTotal sera indéterminé.

datapropriété 
public var data:*

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Données reçues par le biais de l'opération de chargement. Cette propriété n'est renseignée qu'à la fin du chargement. Le format des données varie en fonction du paramétrage de la propriété dataFormat :

Si la propriété dataFormat est URLLoaderDataFormat.TEXT, les données reçues représentent une chaîne qui contient le texte du fichier chargé.

Si la propriété dataFormat est URLLoaderDataFormat.BINARY, les données reçues représentent un objet ByteArray qui contient des données binaires brutes.

Si la propriété dataFormat est URLLoaderDataFormat.VARIABLES, les données reçues représentent un objet URLVariables qui contient des variables d'URL codées.

Voir aussi

dataFormatpropriété 
public var dataFormat:String = "text"

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Contrôle si les données téléchargées sont reçues sous forme de texte (URLLoaderDataFormat.TEXT), de données binaires brutes (URLLoaderDataFormat.BINARY) ou de variables d'URL codées (URLLoaderDataFormat.VARIABLES).

Si la valeur de la propriété dataFormat est URLLoaderDataFormat.TEXT, les données reçues représentent une chaîne qui contient le texte du fichier chargé.

Si la valeur de la propriété dataFormat est URLLoaderDataFormat.BINARY, les données reçues représentent un objet ByteArray qui contient les données binaires brutes.

Si la valeur de la propriété dataFormat est URLLoaderDataFormat.VARIABLES, les données reçues représentent un objet URLVariables qui contient les variables d'URL codées.

La valeur par défaut est URLLoaderDataFormat.TEXT.

Voir aussi

Détails du constructeur
URLLoader()Constructeur
public function URLLoader(request:URLRequest = null)

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée un objet URLLoader.

Paramètres
request:URLRequest (default = null) — Objet URLRequest indiquant l’URL à télécharger. Si ce paramètre n'est pas spécifié, aucune opération de chargement ne commence. S'il est spécifié, l'opération de chargement commence immédiatement (voir l'entrée load pour plus d'informations).

Voir aussi

Détails des méthodes
close()méthode
public function close():void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Ferme l’opération de chargement en cours. Toute opération de chargement en cours prend immédiatement fin. Si aucune URL n’est en cours de transmission, une erreur de flux non valide est renvoyée.

load()méthode 
public function load(request:URLRequest):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Envoie et charge les données à partir de l'URL spécifiée. Les données peuvent être reçues sous forme de texte, de données binaires brutes ou de variables d'URL codées, selon la valeur définie pour la propriété dataFormat. Vous remarquerez que la valeur par défaut de la propriété dataFormat correspond à text. Si vous souhaitez envoyer des données à l'URL spécifiée, définissez la propriété data dans l'objet URLRequest.

Remarque : Si un fichier en cours de chargement contient des caractères non-ASCII (comme dans les langues autres que l'anglais), nous vous recommandons d'enregistrer le fichier avec codage UTF-8 ou UTF-16, plutôt que sous un format non-Unicode, ASCII par exemple.

Pour utiliser cette méthode, tenez compte du modèle de sécurité de Flash Player :

Pour Flash Player 9 et les versions ultérieures, vous pouvez éviter qu'un fichier SWF n'utilise cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui héberge le contenu SWF.

Pour Flash Player 8 et les versions ultérieures :

Pour Flash Player 7 et les versions ultérieures, les sites Web permettent l'accès interdomaines à des ressources via un fichier de régulation interdomaines. Dans les fichiers SWF, quelle que soit leur version, exécutés dans Flash Player 7 ou une version ultérieure, l’url doit se trouver exactement 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 aussi à l'adresse www.adobe.com.

Pour plus d'informations, consultez les références suivantes :

Pour les fichiers SWF lus par une version antérieure à Flash Player 7, l’url doit correspondre au superdomaine du fichier SWF envoyant cet appel. Un superdomaine est dérivé par suppression du composant le plus à gauche de l'URL d'un fichier. Par exemple, un fichier SWF à l'adresse www.adobe.com peut charger des données provenant de sources à l'adresse store.adobe.com, car les deux fichiers se trouvent dans le même superdomaine intitulé adobe.com.

Paramètres

request:URLRequest — Objet URLRequest indiquant l’URL à télécharger.


Evénements
complete:Event — Distribué lorsque le chargement de données a réussi.
 
httpStatus:HTTPStatusEvent — Si l'accès s'effectue via HTTP et que l'environnement actuel de Flash Player prend en charge l'obtention des codes d'état, vous pouvez recevoir ces événements, en plus de tout événement complete ou error.
 
ioError:IOErrorEvent — L’opération de chargement n'a pu se terminer.
 
progress:ProgressEvent — Distribué à la réception des données au fur et à mesure du téléchargement.
 
securityError:SecurityErrorEvent — Une opération de chargement a tenté d’extraire des données à partir d’un serveur situé en dehors du sandbox de sécurité de l’appelant. Vous pouvez contourner le problème en utilisant un fichier de régulation au niveau du serveur.
 
open:Event — Distribué lors du démarrage d'un téléchargement.

Lance
ArgumentError — Les objets URLRequest.requestHeader ne devraient pas contenir certains en-têtes de requête HTTP interdits. Pour plus d'informations, consultez la description de la classe URLRequestHeader.
 
MemoryError — Cette erreur peut se produire pour les raisons suivantes : 1) Flash Player ne peut pas convertir le paramètre URLRequest.data du format UTF8 au format MBCS. Cette erreur est concernée si l’objet URLRequest transmis à la méthode load() est configuré pour exécuter une opération GET et si System.useCodePage est réglé sur true. 2) Flash Player ne peut pas allouer de mémoire aux données POST. Cette erreur est concernée si l’objet URLRequest transmis à load est configuré pour exécuter une opération POST.
 
SecurityError — Les fichiers SWF locaux non approuvés ne peuvent pas communiquer avec Internet. Pour contourner ce problème, reclassifiez le fichier SWF en tant que fichier local avec accès au réseau ou en tant que fichier approuvé.
 
TypeError — La valeur du paramètre de requête ou de la propriété URLRequest.url de l'objet URLRequest transmis est null.

Voir aussi


Exemple

Dans l'exemple suivant, un fichier XML est chargé et le contenu des premiers arguments de son élément s'affiche dans un champ de texte.

Un objet URLRequest est créé pour identifier l'emplacement du fichier XML, qui pour cet exemple est dans le même répertoire que le fichier SWF. Le fichier est chargé dans un bloc try...catch pour capturer toute erreur pouvant survenir. (Ici nous capturons les erreurs SecurityError.) Si un événement IO_ERROR survient, la méthode errorHandler() est invoquée et écrit un message d'erreur dans le champ de texte xmlTextField. Une fois le fichier XML reçu et placé dans la propriété de données de l'objet URLLoader loader, l'événement Event.COMPLETE est distribué et la méthode loaderCompleteHandler() est invoquée.

Dans la méthode loaderCompleteHandler(), un bloc try...catch est utilisé pour capturer toute erreur d'analyse pouvant survenir lors de la conversion des données chargées depuis le fichier en objet XML. La méthode readNodes() passe de façon récursive à travers tous les éléments des noeuds du document XML et ajoute le champ de texte xmlTextField avec la liste des premiers attributs de tous les éléments.

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.";
        }
    }
}
Détails des événements
complete Evénement
Type d'objet événement: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué après le décodage de toutes les données reçues et leur placement dans la propriété data de l'objet URLLoader. Il est possible d'accéder aux données reçues une fois cet événement distribué.

Définit la valeur de la propriété type d'un objet événement complete.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau dont le chargement est terminé.

Voir aussi

httpStatus Evénement  
Type d'objet événement: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué si un appel de la méthode URLLoader.load() tente d'accéder à des données via HTTP et si l'environnement Flash Player actuel est capable de détecter et de renvoyer le code d'état de la requête. (Certains environnements de navigateur ne sont pas capables de fournir cette information.) Vous remarquerez que l'événement httpStatus (le cas échéant) est envoyé avant (et en complément de) tout événement complete ou error.

Définit la valeur de la propriété type d'un objet événement httpStatus.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
statusLe code d’état HTTP renvoyé par le serveur.
targetL’objet réseau recevant un code d’état HTTP.

Voir aussi

ioError Evénement  
Type d'objet événement: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué si un appel de la méthode URLLoader.load() provoque une erreur fatale qui met fin au téléchargement.

Définit la valeur de la propriété type d’un objet événement ioError.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau sur lequel l’erreur d’entrée/sortie s’est produite.
textTexte à afficher en tant que message d’erreur.

Voir aussi

open Evénement  
Type d'objet événement: flash.events.Event
Event.type property = flash.events.Event.OPEN

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué lorsque l'opération de téléchargement commence suite à un appel de la méthode URLLoader.load().

Définit la valeur de la propriété type d'un objet événement open.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau qui a ouvert une connexion.

Voir aussi

progress Evénement  
Type d'objet événement: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué à la réception des données au fur et à mesure du téléchargement.

Notez qu’avec un objet URLLoader, il est impossible d’accéder aux données avant la fin de leur téléchargement. L’événement progress indique donc uniquement la progression du téléchargement. Pour accéder aux données avant la fin de leur téléchargement, utilisez un objet URLStream.

Définit la valeur de la propriété type d'un objet événement progress.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
bytesLoadedNombre d’éléments ou d’octets chargés lors du traitement de l’événement par l'écouteur.
bytesTotalNombre total d'éléments ou d'octets qui seront chargés si le processus de chargement aboutit.
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau indiquant la progression.

Voir aussi

securityError Evénement  
Type d'objet événement: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Distribué si un appel de la méthode URLLoader.load() tente de charger des données d'un serveur en dehors d'un sandbox de sécurité.

La constante SecurityErrorEvent.SECURITY_ERROR définit la valeur de la propriété type d’un objet événement securityError.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
targetObjet réseau signalant l’erreur de sécurité
textTexte à afficher en tant que message d’erreur.

Voir aussi

Exemples Utilisation des exemples
URLLoaderExample.as

L'exemple suivant charge et affiche les données détectées dans un fichier texte local. Il assure également le suivi des informations de gestion des événements.

Remarque : pour exécuter cet exemple, placez un fichier nommé urlLoaderExample.txt dans le même répertoire que votre fichier SWF. Ce fichier ne doit contenir que la ligne de texte suivante : answer=42&question=unknown

Le code de l’exemple effectue les opérations suivantes :

  1. La fonction constructeur crée une occurrence d'URLLoader nommée loader et une occurrence d'URLRequest nommée request, qui contient l'emplacement et le nom du fichier à charger.
  2. L'objet loader est transmis à la méthode configureListeners(), qui ajoute des écouteurs à chacun des événements URLLoader pris en charge.
  3. L'objet request est ensuite transmis à la méthode loader.load(), qui charge le fichier texte.
  4. Lorsque l'URLLoader a terminé de chargé le fichier texte, l'événement Event.COMPLETE se produit et déclenche la méthode completeHandler(). La méthode completeHandler() crée un objet URLVariables à partir du texte chargé depuis le fichier. L'objet URLVariables convertit les paires nom/valeur d'URL codées en propriétés ActionScript pour faciliter la manipulation des données chargées.

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

    public class URLLoaderExample extends Sprite {
        public function URLLoaderExample() {
            var loader:URLLoader = 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);
        }
    }
}




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/net/URLLoader.html