La classe URLLoader implémente directement les événements progress et complete. L'affichage des données chargées se fera donc dans la fonction de retour de l'événement complete. Le contenu du fichier txt est disponible dans la propriété data de l'objet Loader. Ce contenu pourra être parsé, lu en tant que propriétés d'un objet URLVariables dans lequel on aura stocké la propriété data. ![]() Afin de charger des données, nous créons une instance de la classe URLLoader puis nous utilisons la méthode load. A l'aide du bloc-note, nous créons un fichier texte nommé "donnees.txt" qui contient cette ligne : Voici le contenu du fichier texte. Dans un nouveau document Flash ce code:
// création du conteneur var chargeurDonnees:URLLoader = new URLLoader(); // Chargement de l'objet dans le conteneur chargeurDonnees.load(new URLRequest("donnees.txt")); // Ecoute de l'évènement Event.COMPLETE chargeurDonnees.addEventListener(Event.COMPLETE, chargementTermine); function chargementTermine(evt:Event):void { // Accès au données (via la propriété "data") var contenu:String = evt.target.data // Affichage : trace(contenu); } ![]() L'encodage URL est le standard de transmission d'informations par formulaire. L'encodage respecte les règles suivantes : ◊ Les champs sont séparés par des esperluettes (&) ◊ Un champ comporte un nom de champ suivi du signe = puis de la valeur. ◊ Les espaces sont remplacés par des + ◊ Les caractères non alphanumériques sont remplacés par des %XX (ou XX représente le code ASCII en hexadécimal du caractère. Voici le contenu du fichier "chargement.txt"
titre=Chargement d'un fichier txt dans Flash&description=Utilisation Attention: aucun espace autorisé avant et après les signes égale.
Charger un fichier txt en ActionScript 3 (AS3) // création du conteneur var conteneurTextes:URLLoader = new URLLoader(); // url du fichier texte à charger var monfichier:URLRequest = new URLRequest("textes/chargement.txt"); function yesItIs(evt:Event):void { // pour accéder aux données, on utilise la propriété "data" var variables:URLVariables = new URLVariables(evt.target.data); trace("Le titre est '" + variables.titre + "'\nLa description est '" + variables.description +"'"); // ou bien, dans une zone de texte : // maZone.text = "Le titre est '" + variables.titre + "'\nLa description est '" + variables.description +"'"; } // Progression du chargement (facultatif) function enProgression(evt:ProgressEvent):void { var p:Number=(evt.bytesLoaded*100)/evt.bytesTotal; trace(p); } // Pendant la progression du chargement lancer la fonction "enProgression" (facultatif) conteneurTextes.addEventListener(ProgressEvent.PROGRESS, enProgression); // Lorsque le chargement est terminé, exécuter la fonction "yesItIs" conteneurTextes.addEventListener(Event.COMPLETE, yesItIs); // Chargement de l'objet dans le conteneur conteneurTextes.load(monfichier); Note: On peut aussi choisir le type de format que l'on recupère a l'aide de la propriété dataFormat de URLLoader, cette propriété accepte 3 types de valeurs : • URLLoaderDataFormat.BINARY - Données binaires • URLLoaderDataFormat.TEXT - Texte brut • URLLoaderDataFormat.VARIABLES - Chaîne au format URL-encoded Par exemple :
var conteneurTextes:URLLoader = new URLLoader(); conteneurTextes.dataFormat = URLLoaderDataFormat.VARIABLES; Source: Exemple issu du superbe Bases-as3.fr ![]() Utilisation du gestionnaire onData
Exemple: charger un fichier html dans un composant TextArea (AS3) //Définir un format de texte (TextFormat) var monformat:TextFormat = new TextFormat(); // Applique le format sur le composant monTextArea.setNewTextFormat(monformat); //Activation du Html monTextArea.html = true; var myVars:LoadVars = new LoadVars(); // Définition du gestionnaire onData myVars.onData = function(myStr:String):Void { if (myStr != undefined) { // Chargement du texte à afficher monTextArea.text = myStr; } else { trace("Impossible de charger le texte."); } }; myVars.load("http://www.example.com/flash/mapage.htm"); Note: Vous devez définir une fonction qui s'exécute lorsque le gestionnaire est appelé. |