IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

probleme menu dynamique


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut probleme menu dynamique
    Bonjour je debute avec action script et peut etre j'ai vu un peu gros pour commencer. Je me suis lance dans la construction d'un mennu dynamique. mais je rencontre des problemes, voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    //chargement du fichier xml
    var ChargeXml = new XML();
    ChargeXml.load("menu.xml");
    ChargeXml.ignoreWhite = true;
    //pour ignorer les espaces
    //dans le fichier xml
    ChargeXml.onLoad = function() {
    	racine = this.childNodes[0];
    	attachMovie("etiquette", "etiquetteMenu0_mc", 0);
    	etiquetteMenu0_mc._x = 30;
    	etiquetteMenu0_mc._y = 45;
    	etiquetteMenu0_mc.TexteEtiquette.text = racine.attributes.nom;
    	var nbrEnfants:Number = racine.childNodes.length;
    	//test.text=nbrEnfants;
    	etiquetteMenu0_mc.Derouleur.onRelease= function(){
    			for (i=0; i<nbrEnfants; i++) {
    				temp1_mc = etiquetteMenu0_mc.attachMovie("etiquette", "etiquetteSmenu"+i+"_mc", i);
    				temp1_mc.label="etiquetteSmenu"+i+"_mc";
    				temp1_mc._x = 20;
    				temp1_mc._y = 30+(i*30);
    				temp1_mc.TexteEtiquette.text = racine.childNodes[i].attributes.nom;
    				var nbrEnfants2:Number = racine.childNodes[i].childNodes.length;
    				test.text=temp1_mc.label;
    				//temp1_mc._visible=false;
    				temp1_mc.Derouleur.onRelease=function(){	
    					for (j=0; j<nbrEnfants2; j++) {
     
    						temp2_mc = temp1_mc.attachMovie("etiquette", "etiquetteSsmenu"+j+"_mc", j);
    						temp2_mc._x = 60;
    						temp2_mc._y = 30+(40*i)+(j*30);
    						temp2_mc.TexteEtiquette.text = racine.childNodes[i].childNodes[j].attributes.nom;
    						//temp2_mc._visible=false;
    					}
    				}
    			}
    	}
     
    		/*etiquetteMenu0_mc.Derouleur.onRelease= function() {
    				if (this._currentFrame ==1){
    					this.gotoAndStop(2);
    					etiquetteSmenu0._visible=true;
    				}
    		};*/
     
    };
    Le menu s'affiche bien mais le probleme c'est quand je met les onrelease.
    dans la partie tout en bas qui est en commentaire je n'arrive pas a acceder a mes champs de menus. etiquetteSmenu0._visible=true ne marche pas .
    et quand je met les onrelease dans la boucle de creation des menus j'arrive a acceder aux champs du menu par mes objets temp1 et temp2 mais la deuxieme partie du menu ne s'affiche pas quand on clique sur l'arborescence.

    j'aimerais mieux separer les onrelease des deux boucles alors ma question est comment faire pour accéder aux champs de mon menu(etiquetteSmenu+i et etiquetteSsmenu+i)
    merci!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    salut je progresse mais ca deconne encore, voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    etiquetteMenu0_mc.Derouleur.onRelease= function(){
    			for (i=0; i<nbrEnfants; i++) {
    				temp1_mc = etiquetteMenu0_mc.attachMovie("etiquette", "etiquetteSmenu"+i+"_mc", i);
    				temp1_mc._x = 20;
    				temp1_mc._y = 30+(i*30);
    				temp1_mc.TexteEtiquette.text = racine.childNodes[i].attributes.nom;
    				var nbrEnfants2:Number = racine.childNodes[i].childNodes.length;
     
    				var niveau:Number=i;
     
    				temp1_mc.Derouleur.onRelease=function(){	
    					for (j=0; j<nbrEnfants2; j++) {
    						test.text=niveau;
    						temp2_mc = temp1_mc.attachMovie("etiquette", "etiquetteSsmenu"+j+"_mc", j);
    						temp2_mc._x = 60;
    						temp2_mc._y = 30+(40*niveau)+(j*30);
    						temp2_mc.TexteEtiquette.text = racine.childNodes[niveau].childNodes[j].attributes.nom;
    						//temp2_mc._visible=false;
    					}
    				};
    			}
    	};
    mon probleme c'est que ca "passe tout droit", j'ai juste le dernier element du sous menu qui est affiche. J'ai essaye de passer i en parametre a la fonction onrelease mais ca marche pas non plus.
    quelqu'un aurait il une idée?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    bon ca progresse, le menu s'affiche, il reste juste un petit probleme pour le faire disparaitre.

    voici le code du menu deroulant pour ceux que ca interesse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    //chargement du fichier xml
    var ChargeXml = new XML();
    ChargeXml.load("menu.xml");
    ChargeXml.ignoreWhite = true;
    //pour ignorer les espaces
    //dans le fichier xml
    ChargeXml.onLoad = function() {
    	racine = this.childNodes[0];
    	attachMovie("etiquette", "etiquetteMenu0_mc", 0);
    	etiquetteMenu0_mc._x = 30;
    	etiquetteMenu0_mc._y = 45;
    	etiquetteMenu0_mc.TexteEtiquette.text = racine.attributes.nom;
    	//var nbrEnfants:Number = racine.childNodes.length;
    	//test.text=nbrEnfants;
    	etiquetteMenu0_mc.Derouleur.nbrEnfants = racine.childNodes.length;
    	etiquetteMenu0_mc.Derouleur.onRelease = function() {
    		if (this._currentFrame == 1) {
    			this.gotoAndStop(2);
    			for (i=0; i<this.nbrEnfants; i++) {
    				temp1_mc = etiquetteMenu0_mc.attachMovie("etiquette", "etiquetteSmenu"+i+"_mc", i);
    				temp1_mc._x = 20;
    				temp1_mc._y = 30+(i*30);
    				temp1_mc.TexteEtiquette.text = racine.childNodes[i].attributes.nom;
    				temp1_mc.Derouleur.niveau2 = i;
    				temp1_mc.Derouleur.noeudsEnfants = racine.childNodes[i].childNodes.length;
    				temp1_mc.Derouleur.onRelease = function() {
    					if (this._currentFrame==1){
    						this.gotoAndStop(2);
    					for (j=0; j<this.noeudsEnfants; j++) {
    						//test.text=niveau;
    						temp2_mc = temp1_mc.attachMovie("etiquette", "etiquetteSsmenu"+j+"_mc", j);
    						temp2_mc._x = 60;
    						temp2_mc._y = 30+(40*this.niveau2)+(j*30);
    						temp2_mc.TexteEtiquette.text = racine.childNodes[this.niveau2].childNodes[j].attributes.nom;
    						//temp2_mc._visible=false;
    						temp2_mc.Derouleur.gotoAndStop(3);
     
    					}
    					}
    					else
    					{
    						this.gotoAndStop(1);
    						etiquetteMenu0_mc["etiquetteSmenu"+0+"_mc"]["etiquetteSsmenu"+0+"_mc"].removeMovieClip();
    						/*for (j=0;j<this.noeudsEnfants;j++)
    						{
    							test.text=j;
    							etiquetteMenu0_mc["etiquetteSmenu"+this.niveau2+"_mc"]["etiquetteSsmenu"+0+"_mc"].removeMovieClip();
    						}*/
    					}
    				};
    			}
    		} else {
    			this.gotoAndStop(1);
    			//test.text = 2;
    			test.text=this.nbrEnfants;
    			for (i=0; i<this.nbrEnfants; i++) {
    				etiquetteMenu0_mc["etiquetteSmenu"+i+"_mc"].removeMovieClip();
    			}
    		}
    	};
    };
    par contre j'ai une question:
    Est ce que cette ecriture la est correcte? parceque ca marche pas
    etiquetteMenu0_mc["etiquetteSmenu"+0+"_mc"]["etiquetteSsmenu"+0+"_mc"].removeMovieClip();

Discussions similaires

  1. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  2. [struts] probleme champs dynamiques
    Par rocco dans le forum Struts 1
    Réponses: 28
    Dernier message: 07/06/2004, 21h26
  3. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01
  4. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50
  5. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo