_x et _y avec xml

naibaf71 Messages postés 11 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 23 janvier 2012 - 20 janv. 2012 à 15:37
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 25 janv. 2012 à 10:49
bonjour à tous pour commencer !

je vai etre bref pour pas trop déranger!

je souhaite positionner un clip en fonction d'un x et y défini dans un fichier xml et malgré mes tests et recherche je ne comprends pas pour quoi celà ne fonctionne pas!


mon xml :

<?xml version="1.0" encoding="UTF-8"?>
<cities>
<city>
<name><![CDATA[blabli]]></name>
<x>250</x>
<y>50</y>
<description>dgdfgdf</description>
</city>

<city>
<name><![CDATA[ghjgjgj]]></name>
<x>150</x>
<y>50</y>
<description>dgdfgdf</description>
</city>
</cities>

mon code as :

myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function() {
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
profondeur = 100+i;
trace(ok);
}
};
myXML.load("./data.xml"); // on charge le fichier

carte.onEnterFrame = function() {
test._x =myXML.firstChild.childNodes[0].childNodes[1];
test._y =myXML.firstChild.childNodes[0].childNodes[2];
txt= myXML.firstChild.childNodes[0].childNodes[0];}


carte est un clip
test et mon clip auquel je souhaite donner les parametres x et y du xml
txt est un texte dynamique renseigné par le xml

le texte dynamique et bien chargé mais le positionnement du clip ne se fait pas ?

je ne cherche pas forcement à ce qu on me donne la solution mais au moins m'aiguiller

merci d'avance

7 réponses

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
20 janv. 2012 à 20:06
Bonjour,
En premier temps il faut que tu revois les bases sur la création d'un xml (SdZ par exemple: car tu as une grosse erreur à ce niveau). Ensuite je t'invite à jeter un oeil sur des tuto d'acquiqition de données xml.

Enfin je te conseil d'utiliser la méthode "trace" ca permet souvent de trouver l'origine de ses erreurs.

Cordialement
0
naibaf71 Messages postés 11 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 23 janvier 2012
23 janv. 2012 à 11:40
merci pour les conseils!

ils ont été profitables car j'ai bien avancé,
j'arrive à générer maintenant mes occurences de clip a partir du xml avec les codes suivants :

as

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(success) {
for(i=0; i<xml.firstChild.childNodes.length;i++){
var boule:MovieClip = _root.attachMovie("boule","b"+i,_root.getNextHighestDepth());
boule._x = xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;
boule._y = xml.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;}
};
xml.load("monXML.xml");

je voudrai aller plus loin et faire apparaitre au clic de ces occurences générées du texte dans une zone de texte dynamique nommée "info".

j'ai essayer avec la ligne de code suivante mais rien :
boule.onMouseDown = function() {
info.text=xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;
};

pouvez vous de nouveau m'aiguiller?
merci d'avance.
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
23 janv. 2012 à 15:18
Re bonjour.

J'imagine que tu as corriger ta grosse erreur sur ton xml

sinon:

1> nomme directement tes noeuds
fini les ChildNodes ou firstChild,inscrit directement xml.cities[0].name

2> dans ta doucle d'initialisation de boules, il faut:

déterminer a l'exteririeur de la boucle les variables
var xl:int=xml.length();
var boule:MovieClip;
for(i=0;i<xl;i++){
boule:MovieClip= _root.attachMovie("boule","b"+i,_root.getNextHighestDepth());
boule._x = ...
boule._y = ...

et c'est ici que tu va ajouter ta propore propriété a ta boule.
boule.info=...
}

comme cela chaque boule a sa propre info que l'on peut obtenir avec un eventTarget.info
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
23 janv. 2012 à 15:19
oups:

var xl:int=xml.length();
var boule:MovieClip;
for(i=0;i<xl;i++){
boule= _root.attachMovie("boule","b"+i,_root.getNextHighestDepth());
boule._x = ...
boule._y = ...
c'est mieux
0

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

Posez votre question
naibaf71 Messages postés 11 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 23 janvier 2012
23 janv. 2012 à 15:31
merci encore ! je planche dessus !
0
naibaf71 Messages postés 11 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 23 janvier 2012
23 janv. 2012 à 16:34
je suis un peu géné à force mais voilà ou j'en suis et rien ne sepasse :

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(success) {
for(i=0; i<xml.firstChild.childNodes.length;i++){
var boule:MovieClip = _root.attachMovie("boule","b"+i,_root.getNextHighestDepth());
boule._x = xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;
boule._y = xml.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
boule.info=xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;
} };
boule.onMouseDown = function() {
info.text=xml.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;};

xml.load("monXML.xml");

et rien ne se passe !
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
25 janv. 2012 à 10:49
En fait tu n'as pas compris l'interet d'associer l'info a la boule.

Mon bout de code n'est peut etre pas bon car je ne travaille pas en as2 mais l'idée est de faire:
boule.onMouseDown = function(){info.text=this.info;}

mais au lieu de faire une faire une fonctin anonyme, il serait bien de la nommer et de l'associer à tous instances de boule sur le mousedown.

toutefois je t'invite a passer en as3

Cordialement
0