Parfois lorsque vous développez un jeu ou une application flash, il est intéressant de stocker des paramètres à l'extérieur du fichier flash, pour éviter à chaque fois que vous ajouter une modification de devoir re-compiler le fla, nous allons vous montrer dans ce tutoriel comment stocker ces paramètres et les utiliser à partir d'un fichier XML externe.
Tout d'abord, il vous faudra créer le fichier Parameter.as3, attention à ne pas oublier la majuscule.
package
{
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
public dynamic class Parameter extends EventDispatcher {
public static const COMPLETE:String = "Paramètres téléchargés";
public static var instance:Parameter;
public static function setParameter(path:String) {
if (instance == null) {
instance = new Parameter;
var url:URLRequest = new URLRequest(path);
var ul:URLLoader=new URLLoader(url);
ul.dataFormat=URLLoaderDataFormat.TEXT;
ul.addEventListener(Event.COMPLETE,complet);
ul.load(url);
}
return instance;
}
private static function complet(e:Event):void {
XML.ignoreWhitespace = true;
var xml:XML = new XML(e.target.data);
var list:XMLList = xml.children();
for each (var i in list) instance[i.name()] = i.valueOf();
instance.dispatchEvent(new Event(Parameter.COMPLETE));
}
}
}
Ensuite créez un fichier XML afin d'y stocker vos valeurs.
image.jpg
logo.png
bienvenue dans mon application
5
Le nombre de nœud n'est pas limité et la façon dont vous les nommer non plus.
Pour utiliser cette classe, dans votre fichier fla, recopiez ces quelques lignes.
var param:Parameter = Parameter.setParameter(url); // l'url correspondra à l'adresse de votre fichier xml
param.addEventListener(Parameter.COMPLETE, fini); // on écoute le téléchargement pour lancer à la fin, la fonction fini
function fini (e:Event){
trace(Parameter.instance.logo);
// vous pouvez directement utiliser les paramètres de votre xml en écrivant d'abord "Parameter.instance." puis le nom du noeud appelé dans votre xml.
}
réduire -