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 :

[FLASH 8] Problème attachMovie en boucle


Sujet :

Flash

  1. #1
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut [FLASH 8] Problème attachMovie en boucle
    Bonjour,
    J'ai un léger problème lorsque je créé des movieClip dans une boucle : seul le dernier élément est affiché. Lorsque je fais un trace après la création, mais dans la boucle, tous les MC existent bien. Pourtant, à la compilation ils sautent : j'ai vérifié dans la fenêtre de débuggage.

    Je vous donne 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
    var config_xml:XML=new XML();
    config_xml.ignoreWhite=true;
    config_xml.onLoad=function(success){
    	if (success) {
    		// Retrieve all title notes within /rss/channel/item.
    		var pathToTrads_str:String = "/document/langue[@id="+_root['lang']+"]/traductions/texte";
    		// Get the evaluation string used for the search.
    		
    		var pathToMenu_str:String= "/document/langue[@id="+_root["lang"]+"]/menu";
    		var nodeMenus_a:Array = XPathAPI.selectNodeList(this.firstChild,pathToMenu_str);
    		var nbMenu:Number=nodeMenus_a.length;
    		for (var i:Number = 0; i < nbMenu; i++) {
    			var idMenu:String=nodeMenus_a[i].attributes.id.toString();
    			_root["p0"+idMenu].label_menu_txt.setNewTextFormat(formatTxtMenuPrinc);
    			_root["p0"+idMenu].label_menu_txt.text=nodeMenus_a[i].firstChild.firstChild.nodeValue;
    			var pathToPages_str="/document/langue[@id="+_root["lang"]+"]/menu[@id="+idMenu+"]/page";
    			var nodePages_a:Array=XPathAPI.selectNodeList(this.firstChild, pathToPages_str);
    			var nbPage:Number=nodePages_a.length;
    			for (var j:Number=0; j<nbPage;j++){
    				_root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root.getNextHighestDepth());
    				_root['p0'+idMenu]["elem_ssmenu_"+j]._x=-30;
    				_root['p0'+idMenu]["elem_ssmenu_"+j]._y=100+j*20;
    				_root['p0'+idMenu]["elem_ssmenu_"+j].label_ssmenu_txt.html=true;
    				_root['p0'+idMenu]["elem_ssmenu_"+j].label_ssmenu_txt.styleSheet=oStyles;
    				_root['p0'+idMenu]["elem_ssmenu_"+j].label_ssmenu_txt.htmlText=nodePages_a[j].childNodes[0].firstChild.nodeValue;
    			}
    		}
    	} else {
    		trace("Fichier XML indisponible ou erroné!");
    	}
    }
    config_xml.load("xml/menu.xml");
    C'est la boucle en rouge qui pose problème.

    PSour ceux qui se demanderaient, je doute que ça vienne du XML.

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    t sur qu ils ne sont pas tous superposés?
    meme coord...meme clip... meme forme

  3. #3
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Oui, sûr : j'ai vérifié dans la fenêtre de débuggage (dans le lecteur, menu "déboguer", liste objet).
    J'ai reproduit le bug avec un truc plus simple, disponible en PJ.
    J'espère que quelqu'un aura une solution, moi ça fait 8 heures que je me prend la tête là dessus...

    exemple.fla

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    effectivmeent moi je comprend pa non plus...
    j ai meme ecrit ceci pour etre sur

    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
    var arr:Array=new Array();
    for (i=0;i<10;i++){
    	var curBoule:MovieClip=this.attachMovie("boule", "boule"+i,this.getNextHighestDepth());
    	curBoule._x=30*i;
    	curBoule._y=30*i;
    	for(j=0;j<2;j++){
    		arr.push(curBoule.attachMovie("carre", "carre"+j, this.getNextHighestDepth()));
    		arr[arr.length-1].onPress=function(){this.startDrag();trace(this._name);}
    		arr[arr.length-1].onRelease=function(){this.stopDrag();}
    		arr[arr.length-1]._x=40*j;
    		arr[arr.length-1]._y=40*j;
    		arr[arr.length-1]._width=10;
    		arr[arr.length-1]._height=10;
    	}
    }
    trace(arr);
    ..bah ca marche pas...
    il m ecris
    ,_level0.boule0.carre1,,_level0.boule1.carre1,,_level0.boule2.carre1,,_level0.boule3.carre1,,_level0.boule4.carre1,,_level0.boule5.carre1,,_level0.boule6.carre1,,_level0.boule7.carre1,,_level0.boule8.carre1,,_level0.boule9.carre1
    Zarbi cette histoire...

  5. #5
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Oui... Et je ne vois pas du tout comment faire sans ça!!

  6. #6
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root["p0"+idMenu].getNextHighestDepth());

    Bon ! Je pense que t'aurras compris que tu écrase t'es clip ...

  7. #7
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    moi ça fait 8 heures que je me prend la tête là dessus...
    C'est tout ?

    J'ai passé plus de temps a lir ce post qu'a trouver l'erreur

  8. #8
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Je comprends pas ce que tu veux dire...
    Et je ne vois pas ce que ça a à voir avec la profondeur : le clip n'existe pas du tout, ce n'est pas qu'il est caché sous d'autres! Je testerais tout de même lundi (j'ai pas Flash chez moi )

    PS : mettre plus de 8h pour lire ce post, vraiment?

  9. #9
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Moi je dit juste que y'a une erreur là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (var j:Number=0; j<nbPage;j++){
    _root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root.getNextHighestDepth());
    _root['p0'+idMenu]["elem_ssmenu_"+j]._x=-30;
    _root['p0'+idMenu]["elem_ssmenu_"+j]._y=100+j*20;
    }
    Pour en etre convaincu, essai ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (var j:Number=0; j<nbPage;j++){
    _root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root.getNextHighestDepth());
    trace(_root.getNextHighestDepth());// renvoie toujours le meme depth
    _root['p0'+idMenu]["elem_ssmenu_"+j]._x=-30;
    _root['p0'+idMenu]["elem_ssmenu_"+j]._y=100+j*20;
    }
    Maintenant, tu dit qu'il n'y a pas de clip : ok!
    essai ca : et dit nous ce que ce code renvoie dans la fenetre de sortie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (var j:Number=0; j<nbPage;j++){
    trace(_root["p0"+idMenu]);
    _root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root.getNextHighestDepth());
    _root['p0'+idMenu]["elem_ssmenu_"+j]._x=-30;
    _root['p0'+idMenu]["elem_ssmenu_"+j]._y=100+j*20;
    }
    ...

    Bon j'anticipe ...

    Si ca te renvoie undefined , c'est que t'es clip n'existe pas
    donc essai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    _root.createEmptyMovieClip("p0"+idMenu, _root.getNextHighestDepth());
    for (var j:Number=0; j<nbPage;j++){
    _root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root.getNextHighestDepth());
    _root['p0'+idMenu]["elem_ssmenu_"+j]._x=-30;
    _root['p0'+idMenu]["elem_ssmenu_"+j]._y=100+j*20;
    }

    Si il y a toujours des probleme:
    PS: Pour ceux qui se demanderaient, je doute que ça vienne du XML.
    Alors envoie le xml!!
    Par ce que ton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Retrieve all title notes within /rss/channel/item.
    var pathToTrads_str:String = "/document/langue[@id="+_root['lang']+"]/traductions/texte";
    // Get the evaluation string used for the search.
    var pathToMenu_str:String= "/document/langue[@id="+_root["lang"]+"]/menu";
    var nodeMenus_a:Array = XPathAPI.selectNodeList(this.firstChild,pathToMenu_str);
    c'est ce qui ma prie 7h59 ....

  10. #10
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    LOOL!
    Ok désolé ^^
    C'est pour ça que j'ai attaché un FLA, il n'y a pas de XML et il y a le même problème. Très utile, par contre, le XML pour la configuration

  11. #11
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut derniere intervention
    Citation Envoyé par CR_Gio
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root["p0"+idMenu].attachMovie("elem_ssmenu_mc", "elem_ssmenu_"+j, _root["p0"+idMenu].getNextHighestDepth());
    Bon ! Je pense que t'aurras compris que tu écrase t'es clip ...
    C'est pour ça que j'ai attaché un FLA, il n'y a pas de XML et il y a le même problème.
    A meme probleme, meme solution...;

    Toi tu ecrie ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root.my_mc.attachMovie("elt", "elt0", _root.getNextHighestDepth());
    Moi je dit qu'il faut ecrire ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root.my_mc.attachMovie("elt", "elt0", _root.my_mc.getNextHighestDepth());
    Si tu comprend pas ... je laisse tomber!

  12. #12
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    J'ai compris
    Je suis quand même étonné qu'il ne créé pas les clips, je pensais qu'ils se seraient simplement superposés de manière étrange.
    En tout cas, merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Problème nom variable et boucle for
    Par jbidou88 dans le forum Flash
    Réponses: 10
    Dernier message: 23/03/2007, 12h36
  2. Réponses: 10
    Dernier message: 21/03/2007, 10h54
  3. [FLASH 8] Problème Boucle For
    Par Begood dans le forum Flash
    Réponses: 6
    Dernier message: 21/03/2006, 12h36
  4. Réponses: 5
    Dernier message: 14/01/2006, 21h30
  5. [Flash Mx] Problème de contour texte
    Par tahiti bob dans le forum Flash
    Réponses: 13
    Dernier message: 12/03/2004, 14h52

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