Problème d'undefined

Reno007 Messages postés 2 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 24 août 2006 - 14 août 2006 à 16:01
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 - 15 août 2006 à 13:47
Bonjour à tous.


Je désire pouvoir avoir accès au contenu de ma variable "contenuXMLFichier" en dehors de la fonction onLoad et j avais trouvé un code sensé résoudre mon problème. Hélas ca ne marche pas, voici mon code:

import mx.utils.Delegate;


class XMLContentLoader
{
 public var contenuXMLFichier:Array = new Array();
 public var nbPhotos:Number;
 private var xml:XML;


 function XMLContentLoader([String url:String])
 {
  xml = new XML();
  xml.ignoreWhite = true;
  xml.onLoad = Delegate.create(this, onLoadEvent);
  xml.load(url);
 }
 function onLoadEvent(success:Boolean):Void
 {
  if(success)
  {
   nbPhotos = xml.firstChild.childNodes.length;//récupérer le nombre de photos
    for(var i:Number=0; i<nbPhotos; i++)
    {
     contenuXMLFichier[i]=xml.firstChild.childNodes[i].attributes.fichier;
    }
  }
  trace(contenuXMLFichier[0]); //Affiche correctement le nom de mon 1er fichier
 }
}

Et Dans mon .fla :

System.useCodepage = true;
import XMLContentLoader.*;


var espace:Number = 10;
var photoX:Number = espace;
var photoY:Number = espace;
var xmlCL:XMLContentLoader = new XMLContentLoader("../xml/sanguines.xml");
trace(xmlCL.contenuXMLFichier[0]); //Affiche undefined

Voila, l'utilisation de "Delegate" était sensé résoudre mon problème mais ca ne marche toujours pas, quelqu'un aurait-il une solution ?
Merci.

Renaud

2 réponses

atchoumdu51 Messages postés 194 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 16 juillet 2007 1
14 août 2006 à 23:08
Bonjour

Ce n'est que mon avis mais il faudrait que tu attendes que ton Xml soit chargé. Car tu essaye de faire un trace alors que ton Xml est encore en cours de chargement. Pour cela il faudrait voir si le "undefined" arrive avant la valeur correcte, si c'est le cas alors il faut que tu attendes avant de vouloir utiliser la variable
0
fguitton Messages postés 396 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 13 novembre 2009 1
15 août 2006 à 13:47
Ce n'est peu être que ton avis
atchoumdu51
. Mais c'est exactement le problème !

atchoumdu51
 a tout à raison sur ce point !
Par contre je vais complèter en disant que la class Delegate permet d'exécuter une fonction dans un domaine spécifique, or si ton domain est   this   il se reporte a l'élément actuel. Donc en gros tous ca ca sert à rien à part à charger ton code pour rien. Si tu déclare ton tableau contenuXMLFichier à la racine du code et que tu le complète via une fonction les information du tableau sont accessible de n'importe quel endroit de l'animation.
De cause à effet voir la réponse de
atchoumdu51
.

Aller @+
Flo
0
Rejoignez-nous