Variable globale

Résolu
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 - 24 juin 2011 à 01:58
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 26 juin 2011 à 13:30
Bonsoir à tous,
ce doit être tout bête mais je n'arrive pas à trouver la solution. J'ai un fichier XML contenant des infos dont une url d'image. J'aimerai appliquer cette url à un loader mais je n'arrive pas à sortir la variable urlIllustration de la fonction affichageXML()...

private function affichageXML(pEvt:Event):void{
var enigme:XML = new XML( pEvt.target.data );// on récupère notre xml
var liste_question:XMLList = enigme.elements(); //le document XML est constitué d'une liste de questions
for each(var question:XML in liste_question){//pour chaque noeud enfants dans la liste des questions
trace(question.(@ref == 1).enonce); //on filtre par le numéro de la question
trace(question.(@ref == 1).reponse);
trace(question.(@ref == 1).image);
var urlIllustration:URLRequest new URLRequest(question.(@ref aleatoire).image);
}
}

public function Enigme(){

addChild(scene);

chargementXML.addEventListener(Event.COMPLETE, affichageXML);
chargementXML.load(fichier);

Illustration.load(urlIllustration);
Illustration.x = 380;
Illustration.y = 20;
scene.addChild(Illustration);
}

si ça peut aider :
<questions>
<question ref="1">
<enonce>ma question</enonce>
<reponse>ma reponse</reponse>
images/mon_image.jpg
</question>
</questions>


Si vous pouviez me donner une piste. MERCI !

14 réponses

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
25 juin 2011 à 16:50
Il faut un peu chercher quand meme!!!

//declaration en global:
var adresse:String;

//affectation lors du chargement du xml:
adresse="ton noeud cible dans ton objet xml";

//et lors de ton chargement tu fais directement.
l.load(new URLRequest(adresse));


m'enfin!
3
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
25 juin 2011 à 23:59
J'ai trouvé, mon problème venais du fait que j'appelais les fonction d'ajout (addChild()) en dehors de ma fonction finChargementXML().

Merci pour ton aide.
3
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
24 juin 2011 à 09:58
Bonjour,

var urlIllustration:URLRequest;

private function affichageXML(pEvt:Event):void{
...
urlIllustrationnewURLRequest(question.(@ref aleatoire).image);
}
}
...
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
24 juin 2011 à 10:03
Haaaaa ! C'est basique en plus !
Quand on déclare une variable dans une fonction elle devient locale.

Merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
24 juin 2011 à 19:39
Oooops :

Le paramètre request ne doit pas être nul.
que faire ?
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
25 juin 2011 à 15:06
bonjour,dans le message précédent , j'ai répondu a ta question.
mais comme tu as compris tu as un autre pb, c'est que tu ne sais pas utiliser un objet xml.

A quoi te sert ton xmllist?
D'autant plus que tu fais un xml, puis un xmllist, pour le boucler sur des xml.
Piste de travail:
Faire ce que tu veux avec un simple objet xml et boucle dessus
Apprendre a faire un ciblage dans un objet xml
"question.(@ref == aleatoire).image" ca veut rien dire
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
25 juin 2011 à 15:43
Aucun rapport à mon avis.
c'est var urlIllustration:URLRequest; qui ne doit pas être vide.

Car cela ne marche pas :

[b]var urlIllustration:URLRequest;

private function test(){
urlIllustration = new URLRequest("images/enigme3/animaniacs.jpg");
}

test();/b
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
25 juin 2011 à 23:40
je veux bien mais ça me donne :
L'URL est introuvable car la variable est vide.

J'ai le même problème avec des variables contenant du texte simple.
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
25 juin 2011 à 23:43
Pourtant avec un test ça fonctionne ( if (maReponse == reponseXML )

avec :
function finChargementXML(e:Event):void{

var contenu = new XML(e.target.data);
reponseXML contenu.question.(@ref 1).reponse;
urlIllustration contenu.question.(@ref 1).image;

}
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
26 juin 2011 à 00:32
Je pense que tu fais un ciblage pas très catholique

contenu.question.(@ref == 1).reponse;

la bonne formulation:

contenu.question[0].reponse;
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
26 juin 2011 à 11:44
Pour le moment ref ne contient que des chiffres dans l'ordre. Il se peut que je sois amené à sélectionner la question différemment qu'aléatoirement et donc l'id (ref) prendra toute son importance.
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
26 juin 2011 à 12:57
L'avantage du xml par rapport à un fichier texte, c'est la gestion des noeuds et de leur index.
Du coup, ton attribut ref n'a pas de raison d'etre car il duplique cette méthode native du xml.

en faisant:
var ref:int="l'id que tu desire";
contenu.question[ref].reponse;

tu obtiendra le meme resultat en allégeant ton xml et ton code.
Cordialement
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
26 juin 2011 à 13:15
Ha, je ne savais pas que la gestion des attribut était si simple. Merci !
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
26 juin 2011 à 13:30
c'est pas une gestion d'attribut c'est le ciblage des noeuds
0
Rejoignez-nous