[flashMX/XML] menu déroulant

menu déroulant [flashMX/XML] - Web design - Graphisme

Marsh Posté le 06-05-2004 à 10:00:24    

Bonjour à tous,
J'ai fait un menu en flash récupérant des données dans un fichier xml, avec un parser .as, le prob c'est que le lien ne se fait pas, quand je clique sur un élément du menu rien ne se passe!!! quelqu'un as-t'il déjà eu le même problème?  
Merci d'avance.

Reply

Marsh Posté le 06-05-2004 à 10:00:24   

Reply

Marsh Posté le 06-05-2004 à 10:09:02    

Tu veux qu'il se passe quoi qd tu cliques sur un élément du menu? Que le fichier xml soit mis à jour?
 
NB: Si tu montres ton code, ce sera plus facile pour t'aider...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 10:17:25    

Le prob c'est que quand je clique sur un bouton de mon menu le lien ne fonctionne pas, je veux que ça me renvoie sur une autre page.
ex fichier xml :  
<contenu>  
 <mnu titre="PRODUITS">  
  <mnu titre="Allumage" link="allumage.php">  
  </mnu>  
  <mnu titre="Eclairage" link="eclairage.php">  
  </mnu>  
 </mnu>  
</contenu>  
 
fichier parser :  
if (Number(substring(_level0.$version,5,1))>5)  
{  
System.useCodePage = true;  
}  
 
xml_doc=new XML();  
xml_doc.ignoreWhite=true;  
xml_doc.onLoad=traiteXML;  
xml_doc.load(_root.xml_link);  
 
function traiteXML()  
{  
xmlData=traiteXmlNodes(xml_doc.firstChild);  
mnu0.item0.mnuBuilder(xmlData);  
}  
 
function traiteXmlNodes(node)  
{  
 var xmlData=new Array();  
 var xmlTemp=new Array();  
 for(var k=(node.firstChild.nodeType==3)?1:0, i=0; k<node.childNodes.length; i++, k++)  
  {  
  var child=node.childNodes[k];  
  xmlData[i]=child.attributes;  
  if (child.hasChildNodes() && child.childNodes.length>1)  
   {  
   xmlTemp=traiteXmlNodes(child);  
   if (child.firstChild.nodeType==3)  
    {  
    xmlData[i].corps=child.firstChild.nodeValue;  
    }  
   for(var j=0; j<xmlTemp.length; j++)  
    {  
    xmlData[i][j]=xmlTemp[j];  
    }  
   xmlData[i].long=j;  
   }else{  
    xmlData[i].corps=child.firstChild.nodeValue;}  
  }  
 xmlData.long=i;  
 return xmlData;  
}  
 
si tu pouvais m'aider ça serait cool pke ça fait un moment que je galère là dessus.  
Merci d'avance!  

Reply

Marsh Posté le 06-05-2004 à 10:26:33    

tu pourrais commenter ton code ? :D  
 
pke je pourrais ptêtre t'aider mais je connais pas la syntaxe xml ...


---------------
[flickr] - [Diaporama] - tilt
Reply

Marsh Posté le 06-05-2004 à 10:27:01    

C'est toi qui l'as fait ce code?


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 10:34:13    

il manque le code de la fonction mnuBuilder()


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 10:35:39    

Jio a écrit :

tu pourrais commenter ton code ? :D  
 
pke je pourrais ptêtre t'aider mais je connais pas la syntaxe xml ...


dslée mais c que du xml.. je vais essayer quand même.
alors dab je fais l'arborescence de mon menu dans mon fichier xml, le "link" sert à préciser la page qui est associée au titre.
<contenu>  
<mnu titre="PRODUITS">  
 <mnu titre="Allumage" link="allumage.php">  
 </mnu>  
 <mnu titre="Eclairage" link="eclairage.php">  
 </mnu>  
</mnu>  
</contenu>  
Ensuite avec le fichier parser, je crée un objet xml qui va contenir les données de mon fichier xml et construire mon menu dans flash, en fait c'est mon lien entre mon fichier xml et flash.

Reply

Marsh Posté le 06-05-2004 à 10:36:50    

Banane masquee a écrit :

C'est toi qui l'as fait ce code?


Non je l'ai pris d'un bouquin (trop nul d'ailleurs-->micro appli flash mx)

Reply

Marsh Posté le 06-05-2004 à 10:46:56    

Code :
  1. <contenu>
  2. <mnu titre="PRODUITS">
  3.   <mnu titre="Allumage" link="allumage.php">
  4.   </mnu>
  5.   <mnu titre="Eclairage" link="eclairage.php">
  6.   </mnu>
  7. </mnu>
  8. </contenu>


 

Code :
  1. /* Test pour l'utilisation d'unicode selon la version -> on s'en fout */
  2. if (Number(substring(_level0.$version,5,1))>5)
  3. {
  4. System.useCodePage = true;
  5. }
  6. /* Création d'un objet XML */
  7. xml_doc=new XML();
  8. /* Pour avaler les espaces du fichier XML */
  9. xml_doc.ignoreWhite=true;
  10. /* Fonction à effectuer une fois le fichier XML chargé (on ne peut rien faire avant) */
  11. xml_doc.onLoad=traiteXML;
  12. /* Chargement du fichier XML????? -> bizarre comme URL ça "_root.xml_link" */
  13. xml_doc.load(_root.xml_link);
  14. function traiteXML()
  15. {
  16. xmlData=traiteXmlNodes(xml_doc.firstChild);
  17. mnu0.item0.mnuBuilder(xmlData);
  18. }
  19. function traiteXmlNodes(node)
  20. {
  21. var xmlData=new Array();
  22. var xmlTemp=new Array();
  23. /* firstChild: 1º sous-noeud de node ;nodeType==3 -> noeud texte ; nodeType==1 -> noeud balise; childNodes: tableau des sous-noeuds de node */
  24. for(var k=(node.firstChild.nodeType==3)?1:0, i=0; k<node.childNodes.length; i++, k++)
  25.   {
  26. /* child est le sous-noeud d'indice 1 ou 0 selon qu'on ait un noeud texte ou un noeud balise -> dans notre cas, noeud balise donc 0 */
  27.   var child=node.childNodes[k];
  28. /* xmlData est un tableau dont les éléments sont des tableaux contenant les attributs de noeuds balises (ici, les attributs peuvent être les valeurs de "titre" et "link" */
  29.   xmlData[i]=child.attributes;
  30.   if (child.hasChildNodes() && child.childNodes.length>1)
  31.    {
  32.    xmlTemp=traiteXmlNodes(child);
  33.    if (child.firstChild.nodeType==3)
  34.     {
  35.     xmlData[i].corps=child.firstChild.nodeValue;
  36.     }
  37.    for(var j=0; j<xmlTemp.length; j++)
  38.     {
  39.     xmlData[i][j]=xmlTemp[j];
  40.     }
  41.    xmlData[i].long=j;
  42.    }else{
  43.     xmlData[i].corps=child.firstChild.nodeValue;}
  44.   }
  45. xmlData.long=i;
  46. return xmlData;
  47. }


Message édité par Banane masquee le 06-05-2004 à 11:13:31

---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 10:55:07    

/* Fonction à effectuer une fois le fichier XML chargé (on ne peut rien faire avant) -> manquerait pas des parenthèses avec un paramètre?*/  C PO
xml_doc.onLoad=traiteXML;  
/* Chargement du fichier XML????? -> bizarre comme URL ça "_root.xml_link" */ c clair mais ça marche puisque j'ai mon menu qui est bien construit suivant mon fichier xml
xml_doc.load(_root.xml_link);  
 
pour mnuBuilder c'est une fonction propre à xml pas besoin de la créer.

Reply

Marsh Posté le 06-05-2004 à 10:55:07   

Reply

Marsh Posté le 06-05-2004 à 11:00:37    

mnuBuilder() est appelé dans le code flash et c'est n'est pas une fonction propre à flash donc elle doit être codé quelquepart...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 11:02:30    

CalamityJane a écrit :

/* Fonction à effectuer une fois le fichier XML chargé (on ne peut rien faire avant) -> manquerait pas des parenthèses avec un paramètre?*/  C PO
xml_doc.onLoad=traiteXML;  


Ça m'étonnerait bcp que ça marche sans mettre ton XML en paramètre...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 11:03:37    

oups yep t'as raison dans action script...

Reply

Marsh Posté le 06-05-2004 à 11:05:58    

et si ça marche puisque mon menu s'affiche correctement suivant l'arborescence de mon fichier xml...  

Reply

Marsh Posté le 06-05-2004 à 11:08:19    

CalamityJane a écrit :

oups yep t'as raison dans action script...


gné? :heink:


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 11:09:35    

CalamityJane a écrit :

et si ça marche puisque mon menu s'affiche correctement suivant l'arborescence de mon fichier xml...


Autant pour moi, j'avais mal vu, y'a pas besoin de paramètre ni de parenthèse...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 11:11:26    

A mon avis, c'est pas dans ce code qu'on va trouver l'erreur mais plutôt dans celui du mnuBuilder...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 11:29:38    

Tu le trouves pas ce mnuBuilder?


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 06-05-2004 à 11:58:56    

faudra que je vérifie avec mon code action script mais je l'ai pas ici.

Reply

Marsh Posté le 06-05-2004 à 12:00:35    

je vérifierai le code pour ma fonction mnuBuilder() ce soir et te tiens au courant, merci bien ;-)

Reply

Marsh Posté le 06-05-2004 à 12:09:38    

ok pas d'problème...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed