Script menu xml

cs_jpbond Messages postés 9 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 8 mars 2010 - 27 mai 2007 à 18:09
cs_jpbond Messages postés 9 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 8 mars 2010 - 30 mai 2007 à 09:27
Bonjour,


je viens de recuperer un code permettant de gerer un menu vertical Flash à l'aide d'un fichier xml.
Tout fonctionne tres bien à l'exception que les liens ne peuvent etre mis que sur les boutons des sous-menus. Les boutons de menu servent seulement à l'ouverture et fermeture de l'affichage de ces sous-menus et je cherche à modifier cela afin qu'un menu orphelin puisse etre aussi un lien (sinon je suis obligé de mettre au moins un sous-menu sur lequel je mets mon lien...c'est un peu bete.


Il n'y a pas de probleme dans la structure du xml. Actuellement j'ai ca :



<?xml version="1.0" encoding="UFT-8"?>
<menus>
 
  <subitem name = "sous titre 1" location="
http://www.google.com"></subitem
>
  <subitem name = "sous titre 2" location="
http://www.yahoo.fr"></subitem
>
 
 
  <subitem name = "lien vers le titre 2" location="
http://www.voila.fr"></subitem
>
 
</menus>


et je vais changer pour ca (plus de sous titre dans le titre 2) :



<?xml version="1.0" encoding="UFT-8"?>
<menus>
 
  <subitem name = "sous titre 1" location="
http://www.google.com"></subitem
>
  <subitem name = "sous titre 2" location="
http://www.yahoo.fr"></subitem
>
 
 
</menus>


j'ai essayé et ca ne fonctionne pas dans le flash car le lien sur les titres n'a pas été prévu. Et meme en essayant de recuperer le code des sous-titres, ca marche pas...mais je ne suis pas super fort en Actionscript.
voila ce que j'ai :



menus = new XML()
menus.load(sourcefile)
menus.ignoreWhite = true



menus.onLoad = function(success) {
 menuData = menus.firstChild.childNodes
 
 for(i=0;i<menuData.length;i++){
  subNodes = menuData[i].childNodes
  if(menuData[i].nodeName == "button"){
   //Container clip holds submenu data
   createEmptyMovieClip("subContainer"+i,i-menuData.length)
   eval("subContainer"+i)._alpha = 0
   eval("subContainer"+i)._x = -1000000
   
   //Main Button attaching and spacing
   attachMovie("mainSuperButton","mainButton"+i,i)
   mainButtonRef = eval("mainButton"+i)
   mainButtonRef.textVar = menuData[i].attributes.name
   mainButtonRef.index = i
   mainButtonRef._y =i*mainSpace
   
   //Main Button release action(rollover located in mainbutton mc)
   mainButtonRef.onRelease = function() {
    if(open == this.index){
     //second click error check. closes menu
     resetMenu()
     open = undefined
    }else{
     //first click
     open = this.index
     this.gotoAndStop(3)
     collapse(this)
    }
    //add any mainbutton open state actions here.. like alpha, etc..
    //containers are hidden ..way.. off stage and moved on release
   }
   for(j=0;j<=subNodes.length;j++){
    containerRef = eval("subContainer"+i)
    if(subNodes[j].nodeName == "subitem"){
     containerRef.attachMovie("subSuperButton","subButton"+j,j)
     containerRef["subButton"+j].textVar = subNodes[j].attributes.name
     containerRef["subButton"+j].page = subNodes[j].attributes.location
     containerRef["subButton"+j]._y = j*subSpace
     
     containerRef["subButton"+j].onRelease = function() {
      //--------------------GOTO ACTION--------------\\
      _root.gotoFunction(this.page)
      this.gotoAndStop(3)
     }
    }
   }
  }
 }
}
function collapse (except) {
 num = except.index
 subRef = eval("subContainer"+num)
 resetMenu()
 //The clips after the one clicked recieve new spots
 for(i=num+1;i<=9;i++){
  eval("mainButton"+i).JumpTo(subRef._height+i*mainSpace)
 }
 subRef._y = eval("mainButton"+num)._height+(num*mainSpace)+subYadjust
 subRef._x = subXfactor
 fade(subRef,"in")
}
//resets everything to original places
function resetMenu() {
 for(j=0;j<=(9);j++){
  eval("subContainer"+j)._alpha = 0
  eval("subContainer"+j)._x = -1000000
  eval("subContainer"+j)._y = 0
  eval("mainButton"+j).JumpTo(j*mainSpace)
 } 
}
function fade(fadeTarget,param) {
 if(param == "in"){
  fadeTarget.onEnterFrame = function(){
   if(this._alpha<100){
   this._alpha+=5
   }
  }
 }
}




la fonction qui m'interesse est la fonction "gotoFunction" dont le code est placé à la racine du Flash :
gotoFunction = function(link) {
 //no quotes on link
 getURL(link)
}
stop()


le MainButton ne gere que l'ouverture/fermeture...j'ai essayé ca :
   //Main Button release action(rollover located in mainbutton mc)
   mainButtonRef.onRelease = function() {
    //--------------------GOTO ACTION--------------\\
    _root.gotoFunction(this.page)



    if(open == this.index){
     //second click error check. closes menu
     resetMenu()
     open = undefined
    }else{
     //first click
     open = this.index
     this.gotoAndStop(3)
     collapse(this)
    }
    //add any mainbutton open state actions here.. like alpha, etc..
    //containers are hidden ..way.. off stage and moved on release
   }


...pour reprendre le code des SubButton mais sans succes...
je dois pas etre loin mais je ne trouve pas...


une ame charitable ?


merci de votre aide !


jp

5 réponses

cs_jpbond Messages postés 9 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 8 mars 2010
28 mai 2007 à 20:30
personne pour m'aider ? ;-(
0
cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
29 mai 2007 à 08:22
as-tu essayé comme ça ,

<?xml version="1.0" encoding="UFT-8"?>
<menus>
 
  http://www.google.com">>
  http://www.yahoo.fr">>
 
 ]
  http://www.voila.fr">>
 
</menus>

Alise
from FlashForum-oi.info
0
cs_jpbond Messages postés 9 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 8 mars 2010
29 mai 2007 à 16:17
non...malheurseusement ca ne marche pas et ca ne m'etonne pas car c'est un probleme de script Actionscript et pas de xml : dans le code du Flash, il n'y a aucune action permettant de recuperer un lien sur le type "bouton de titre"...par contre il y a bien une commande de ce genre sur le bouton de sous-titre mais je n'arrive pas appliquer ce code au titre principal

:-(
0
cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
29 mai 2007 à 20:53
bon je peux t'envoyer un truc sur lequel j'ai travaillé, un peu le même genre de menu et ou la formule que je t'ai donné fonctionne
passes-moi ton mail, je t'envoie ça

Alise
from FlashForum-oi.info
0

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

Posez votre question
cs_jpbond Messages postés 9 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 8 mars 2010
30 mai 2007 à 09:27
je veux bien mais ca ne reglera pas mon soucis :
le but est de ne pas avoir de suditem du tout dans le cas où j'en ai qu'un et de mettre le lien sur le titre...
0