Je me permet de venir m'éclairer de vos lumières .
Pour commencer je vais vous expliquer ce que je veux réaliser . Je tente de faire un programme flash AS3 qui me permet de charger des images a partir d'un fichier XML, et de redimensionner et placer celles ci de manière homogène sur ma scene .
J'utilise une fonction de type Event:Complete pour charger mon ficher XML . Par la suite, dans cette fonction j'appelle une autre fonction du meme type pour charger mes images . Le problème se trouve a ce moment là , je n'arrive pas a récupérer les variables de la fonction "parente" .
Explication par la code :
import flash.events.Event;
stop();
var Hauteur:Number = 90 ;
var Largeur:Number = 90 ;
var option_url:String = loaderInfo.parameters.option ; // récupère l'url du fichier XML par la variable placé dans le code HTML
var loader_XML:URLLoader = new URLLoader(); // créé un nouveau loader URL
loader_XML.addEventListener(Event.COMPLETE,LOAD_BIBLIO_COMPLETE); // Ecoute d'un évènement COMPLETE par le loader
loader_XML.load(new URLRequest(option_url))// Chargement d'un fichier dans le loader par une URL
function LOAD_BIBLIO_COMPLETE(charge_bib:Event):void // Fonction evenementiel utilisé lors d'un retour COMPLETE
{
charge_bib.target.removeEventListener(Event.COMPLETE, LOAD_BIBLIO_COMPLETE ); // Suppression de l'écouteur
var xml:XML = new XML(charge_bib.target.data); // variable XML = charge le type xml du fichier renvoyé par loader_XML
for(var i=0;i < xml.image.length(); i++) // boucle listant tout le contenu des balise contenu dans le fichier XML
{
CREATE_IMG(xml.image[i].cible,i); // Appel la fonction qui créé un nouveau loader (d'image)
}
}
function LOAD_IMG_COMPLETE(charge_img:Event):void // Fonction evenementiel utilisé lors d'un retour COMPLETE
{
charge_img.target.removeEventListener(Event.COMPLETE, LOAD_IMG_COMPLETE );// suppression de l'écouteur
charge_img.target.width=Largeur; // (edit...)
charge_img.target.height=Hauteur; // (edit...)
// ICI j'aimerai charger la variable $i de la fonction parente.
}
var CREATE_IMG = function($src:String,$i:Number) // création d'une fonction permetant la création d'un nouveau loader
{
var loader_IMG:Loader = new Loader ();
loader_IMG.contentLoaderInfo.addEventListener(Event.COMPLETE,LOAD_IMG_COMPLETE); // Ecoute si l'image est chargé completement
loader_IMG.load(new URLRequest($src))// créé une requette URL vers le fichier listé
loader_IMG.name="Num"+$i;
}
Je ne sais pas si je suis bien claire et si mon code est "propre"
si quelqu'un a une meilleur méthode et plus simple , je suis preneur . Merci beaucoup
Ce message a été modifié par raph37 - 24 février 2011 - 23:51.


Haut










