Condition IF par rapport au XML

Résolu
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008 - 14 juin 2008 à 17:41
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008 - 22 juin 2008 à 20:29
Bonjour,

Je voudrais créer une action qui se réalise uniquement si le XML remplit une condition.

mon actionscript :
x = myXML.firstChild;
    if (x.childNodes[4].childNodes[0].attributes.value = "abc") { //abc étant le texte qu'on veut retrouver
        gotoAndPlay(61);
} else { .......

mon xml : (juste la partie concernée)
<3_matchs> <!-- ChildNodes[4] -->
<1 value="abc" />
</3_matchs>

Problème : même quand le texte n'est pas identique, la condition est toujours remplie et l'animation se lance.

Mon fichier est correctement intégré (le texte dynamique fonctionne) mais ça marche pas !

Merci de m'aider (sans m'envoyer sur l'aide d'adobe en ligne, si je poste, c'est que je n'ai pas trouvé).

www.coucoucorp.com

12 réponses

Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
22 juin 2008 à 20:29
Trouvé !

la condition IF est placée dans le clip (comme dans le cas d'un key.press).
ERREUR !
Il fallait placer la condition (que j'ai changé en Switch pour plus de simplicité) dans la séquence même et faire référence au clip comme ça :

resultatJ2 = x.childNodes[3].childNodes[1].attributes.value;
        switch (resultatJ2) {
            case "2" :
                _root.clip2.gotoAndPlay(2);
                break;

Je suis enfin débarrassé de ce problème !

Merci quand même pour m'avoir épaulé

www.coucoucorp.com
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
14 juin 2008 à 19:34
hello,

Correction :)

x = myXML.firstChild;
    if (x.childNodes[4].childNodes[0].attributes.value == "abc") { //abc étant le texte qu'on veut retrouver
        gotoAndPlay(61);
} else { .......
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
14 juin 2008 à 21:22
Merci pour la réponse mais ca passe toujours pas

juste au cas où, je suis en ActionScript 2.0

www.coucoucorp.com
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
14 juin 2008 à 21:28
le double == est obligatoire pour les conditions.

de plus, pourquoi tu fais une condition sur un noeud XML ? fais la condition directement par rapport ton champ texte, donc :

x = myXML.firstChild;
    if (monChamTexte.text== "abc") { //abc étant le texte qu'on veut retrouver
        gotoAndPlay(61);
} else { .......
0

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

Posez votre question
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
15 juin 2008 à 10:33
pour le "pourquoi", tout betement parce que ce n'est pas une information censée apparaitre dans un champ dynamique. Cependant meême en essayant ca (l'info apparait bien dans le champ dynamique) ca marche pas.... mais différement : il bouge plus meme quand la condition est vraie.

J'ai essayé de mettre le résultat avec guillemets et sans mais ca ne change rien.

www.coucoucorp.com
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
15 juin 2008 à 13:29
y'a du nouveau : mon exemple se base sur "abc" mais mon fichier renvoie "1" ou "2" ....
- si je fais mon code à partir de "1" : l'animation ne bouge jamais
- si je la fais sur "abc" : elle bouge tout le temps

Conclusion : ca ne marche toujours pas, mais maintenant le résultat du IF sur un noeud = IF sur texte dynamique

www.coucoucorp.com
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 juin 2008 à 17:10
Peut-tu reexpliquer ton probleme maintenant. Puis envoi tes fichiers si tu veux ke je regarder ! :-)
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
15 juin 2008 à 18:51
Je vais reprendre depuis le début, parce que mon code a evolué depuis (je me repose pas uniquement sur des forums )
but de l'opération : gérer l'"arbre" d'un tournoi par flash (pour le visuel) et xml (pour les données).
(ce serait plus simple de faire des boutons pour faire avancer les gagnants mais on m'a demandé que les gagnants soient désignés dans ls xml... je m'incline)
Le xml gère le nom des participants ainsi que leur évolution dans le tournoi (plus d'autres choses sans interet ici).
La façon d'y arriver : 2 possibilités dans xml :
- <match> <match 1 value="1" /> </match> pour donner le numéro du joueur qui avance
- <joueurs> <joueur 1 value="2" /> (et ainsi de suite pour tous les joueurs) pour dire que le joueur 1 avance au 2° match
Le problème : bah... ca marche pas. J'ai essayé des contions IF ou SWITCH pour avancer depuis le noeud, idem depuis le résultat affiché dans un TextDyn. Mais ca marche pas (snif)

j'aimerais bien t'envoyer les fichiers mais.... comment on fait ?

www.coucoucorp.com
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 juin 2008 à 19:29
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
15 juin 2008 à 20:04
euh... ca doit etre ici

T'occupes pas du boxon dans la 1° (et seule) frame, je fais tous mes tests sur la meme image

www.coucoucorp.com
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 juin 2008 à 20:55
euhh désolé de redemander mais j'ai rien capter de se que tu voulai faire... lol

Tu veu gérer l'avancer des joueur via XML et non par bouton ? sachant que si tu gere par XML tu ne vera pas le nom joueur avancé en live (je dis sa car apparement ta fais des interpolation pour le faire grimper) !
0
Mycom Messages postés 18 Date d'inscription lundi 18 juillet 2005 Statut Membre Dernière intervention 22 juin 2008
17 juin 2008 à 19:21
en effet, tu as bien résumé.

Il faut que l'on voit l'avancement du joueur mais que ce soit géré dans le XML (ca me fait penser à une future question ca ! avec des zooms et le lancement de l'anim' quand la camera passe sur le clip..... on verra ca plus tard !!!)

Mon "commanditaire" est parfaitement concient qu'il faille recharger le .swf (voire meme l'arreter et le rallumer) mais c'est ce qu'il veut pour que le tournoi puisse rester ouvert plusieurs jours si besoin (et donc reprendre là où il s'est arrété).

Les interpollations sont là que pour faire joli (d'ailleurs va falloir que je les gère différemment)

PS : merci pour ton aide et ta patience

www.coucoucorp.com
0
Rejoignez-nous