Texte dynamique dans clip - XML

chindra Messages postés 7 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 3 février 2009 - 2 févr. 2009 à 17:53
chindra Messages postés 7 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 3 février 2009 - 3 févr. 2009 à 16:11
Bonjour,

Je préviens de suite, je suis une méga débutante...je pratique Flash depuis seulement quelques mois et ce n'est pas du tout ma formation initiale car je suis une géographe avec des cours en Flash.
Donc excusez-moi d'avance si je n'utilise pas de terme "technique" ou si elles sont mal utilisées.

J'ai un problème concernant un exercice. Je dois créer une carte avec des boutons (insérés dans un clip) qui vont me servir de marqueur et quand on survolera un de ces boutons, une sorte de fenêtre pop-up apparaîtra. Dans cette fenêtre devra être affichée un texte issu d'un fichier XML.

Jusque là ça va, j'ai réussi à faire la fenêtre "pop-up" mais le texte ne s'affiche pas dans cette fenêtre, à l'intérieur, cela me marque "undefined". Donc, je me dis que c'est peut-être un problème de ciblage...je ne sais pas d'où vient le problème. J'ai parcouru 20 000 forums, j'ai testé plusieurs codes et pourtant je n'arrive pas à trouver le problème.

Le code que j'ai est largement inspiré de nos cours...

Pour infos :
Les boutons sont dans un clip avec une liaison nommé "mc_bt".
Les boutons ont un nom d'occurrence de type "bt1", "bt2"....
La fenêtre pop-up est un clip avec une liaison nommé "champ". Dans ce clip se trouve un champ texte dynamique avec comme nom d'occurrence "my_text".
Mon fichier XML se nomme "marqueur.xml" que je joins dans ce post.

Le problème vient certainement de : "racine.champ_mc.my_text.text=racine.champ.my_text;" car même moi je n'ai pas compris ce que je voulais faire !

Donc voilà ma grande question :

Comment je peux faire avec le code que j'ai actuellement, pour afficher un texte provenant d'un fichier XML dans cette fameuse fenêtre "pop-up" ?

Et autre question facultative : Où placer mon RollOut ? (désolée question bête mais j'y comprends pas grand chose au code" ?

Merci énormément pour les personnes qui pourront m'aider.

Je joins le fichier xml...il est très bateau pour l'instant...

Voici mon code :

racine=this;
var flooring:XML = new XML();


flooring.ignoreWhite = true;
flooring.onLoad = function(success) {
 
 if(success) {
  my_xml = flooring.firstChild.childNodes;
  nb_max = my_xml.length;


  for(i=0;i<nb_max;i++) {
   racine.attachMovie("mc_bt", "bt"+i, i);
   MC = racine["bt"+i];
   
   MC._x = my_xml[i].attributes["x"];
   MC._y = my_xml[i].attributes["y"];
   
   MC._width=my_xml[i].attributes["width"];
   MC._height=my_xml[i].attributes["height"];
   
   MC.bt = 0;
   MC.texte = my_xml[i].firstChild;
   
   MC.onRollOver = function (){
    racine.attachMovie("champ", "champ_mc", this.getNextHighestDepth(),{_x:_xmouse, _y:_ymouse});
    racine.champ_mc.my_text.text=racine.champ.my_text;
    
   }

  }
 }
 else
 {
  trace("error");
 }
};
flooring.load("marqueur.xml");






 

4 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
3 févr. 2009 à 12:16
Euhhh... tu veux afficher quoi exactement car pour moi :

racine.champ_mc.my_text.text && racine.champ.my_text

fait reference au meme champ texte, donc avec ton code racine.champ_mc.my_text.text=racine.champ.my_text; tu dis de remplir le champ texte my_text avec le contenu de ce meme champ donc c'est normal qu'il te mette undefined...
0
chindra Messages postés 7 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 3 février 2009
3 févr. 2009 à 13:09
C'est bon, j'ai trouvé mon erreur en fait !

Merci beaucoup !
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
3 févr. 2009 à 13:36
il serait bon que tu expliques comment tu as résolu ton problème, car ça peut servir aux gens qui rencontrent le même problème que toi et cherchent une solution.

Peg'
0
chindra Messages postés 7 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 3 février 2009
3 févr. 2009 à 16:11
Ah oui pardon.

A partir du RollOver, j'avais une fonction que j'avais préalablement modifié, alors que je n'aurai pas du.

L'ancien code qui ne fonctionnait pas était, complètement illogique ce code  :
.....
    racine.champ_mc.my_text.text=racine.champ.my_text; 

Le bon code donne :

racine.champ_mc.my_text.text = this.texte;
   
Le texte est stocké dans la variable MC.texte donc utilisation de la variable texte.

Voilà.
0