samylatortue
Messages postés42Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention 6 mars 2009
-
29 nov. 2005 à 18:18
samylatortue
Messages postés42Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention 6 mars 2009
-
30 nov. 2005 à 18:31
Salut,
Je suis entrain d'essayer de faire un menu flash /XML cependant flash
s'arrete de lire mon XML quand les donnée du XML ne sont pas monobalise
avec un "/" à la fin.
Je n'ai pourtant pas oublier le ignoreWhigt = true, voici le code que j'utilise pour charger mon XML.
XMLmenu = new XML();
XMLmenu.ignoreWhite = true;
XMLmenu.onLoad = function(ok){
if(ok){
trace("Charger");
afficherMenu();
return;
}
trace("Pas charger");
}
XMLmenu.load("test.xml");
si qqun peut m'éclairer un peu la c'est pas de refus et si vous penssez
qu'il vous faut plus de code je vous en copierais plus...
samylatortue
Messages postés42Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention 6 mars 2009 30 nov. 2005 à 18:31
J'ai tester ta solution SoyYo et ca n'a pas marcher ...... j'ai refait des recherche sur le web et j'ai trouver un piti truc
System.useCodepage = true; activer l'unicode :D et effectivement mon code tel qu'il étais a fonctionner sauf les sous menu lollll mais bon chuis sur la bonne voie :)
donc on s'apercois que le XML est mal lu...
sinon le menu pour l'instant ce n'est pas cliquable j'en suis pas la :) je veux jsute afficher le contenu du XML correctement dans des champs texte.
et le tout se charge bien :D ...
XMLmenu = new XML();
XMLmenu.ignoreWhite = true;
XMLmenu.onLoad = function(ok){
if(ok){
trace("Chrager");
afficherMenu();
trace(XMLmenu);
return;
}
trace("Pas Charger");
}
XMLmenu.load("test.xml");
afficherMenu = function(){
lemenu = XMLmenu.firstChild;
// tant qu'il y a des titre de menu on continu
for(i=0; i<lemenu.childNodes.length; i++){
// position de la ou on est la maintenant dans le menu
var pos = lemenu.childNodes[i];
// le nom du titre var nom = pos.attributes.nom;
// le swf a charger s'il y en a
var toload = pos.attributes.load;
// s'il n'y a pas de swf a charger cela signifie qu'il y a des sous menus
// partie de code non vérifier car XML mal lu
if (toload= =undefined) {
for(j=0; j<lemenu.childNodes[j].childNodes.length; j++){
var pos2 = lemenu.childNodes[j].childNodes;
var nom2 = pos.attributes.nom;
var toload2 = pos.attributes.load;
sous_menu_mc.duplicateMovieClip("sous_menu_mc"+j,j*1);
this["sous_menu_mc"+j].sous_titre = nom2;
this["sous_menu_mc"+j]._y = this["sous_menu_mc"+(j-1)]._y+25;
this["sous_menu_mc"+j]._x = this["sous_menu_mc"+(j-1)]._x+25;
}
} else {
// on duplique un mc et on ecris dans un champ txt dynamique et ca fonctionne
menu_mc.duplicateMovieClip("menu_mc"+i,i*1);
this["menu_mc"+i].titre = nom;
this["menu_mc"+i]._y = this["menu_mc"+(i-1)]._y+50;
}
}
}
voilou j'ai tout détaillé j'espère que l'on va pouvoir trouver mon erreur :D
merci encore ;)
cs_SoyYo
Messages postés210Date d'inscriptionjeudi 11 août 2005StatutMembreDernière intervention27 novembre 2009 30 nov. 2005 à 15:06
Je vois le probleme car j'ai eu le meme en fait, et je pense que c'est
un probleme du parser XML de flash. Car en fait il accepte pas qu'il y
ai des elements dans une balise si celle-ci possede des attribus et
inversement. DOnc du coup tuot ce que je peux te dire c'est de modifier
ton XML en fonction de comment va l'aimer flash (moi c'est ce que j'ai
du faire!!).
Du genre:
<?xml version="1.0" encoding="iso-8859-1"?>
<menu>
<elt>
<titre nom="Introduction" load="intro.swf"/>
</elt>
<elt>
<titre nom="Titre a soustitre" />
<sous_titre nom="ST_1" load="ST_1.swf"/>
<sous_titre nom="ST_2" load="ST_2.swf"/>
<sous_titre nom="ST_3" load="ST_3.swf"/>
<sous_titre nom="ST_4" load="ST_4.swf"/>
</elt>
<elt>
<titre nom="Conclution" load="concl.swf"/>
</elt>
</menu>
et apres il faut adapter ton code mais je ne pense pas que ca soit trop long.