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 :

problème d'écouteur dans une boucle


Sujet :

Flash

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut problème d'écouteur dans une boucle
    Bonjour à tous j'ai un petit soucis avec un écouteur onPress sur un clip qui étant initialisé dans une boucle ne me renvoie à chaque clique que les valeurs héritées du dernier passage dans la boucle...

    Bon d'accord ce n'est absolument pas clair alors pour vous aider à comprendre:

    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
     
    xmlGabari = new XML();
    xmlGabari.load("xml/galerieFoto.xml");
    xmlGabari.ignoreWhite = true;
    xmlGabari.onLoad = function() {
    	var test = new Array();
    	var racineGalerie;
    	var ySSmenu = 30;
    	var titre;
    	var recupNbImage;
    	var cheminImage;
    	var racine = this.firstChild;
    	var recupNbGalerie = racine.childNodes.length;
    	//trace ("source du XML:"+racine.toString());
    	//trace ("nombre de galerie:"+recupNbGalerie);
     
     
    	for (var i = 0; i<recupNbGalerie; i++) {
    		racineGalerie = racine.childNodes[i];
    		titre = racineGalerie.childNodes[0].firstChild.nodeValue;
    		_root.attachMovie("etiquette",titre,i);
    		_root[titre].menuXml = titre;
    		styleT = new TextFormat();
    		styleT.color = 0x000000;
    		styleT.size = 14;
    		styleT.type = "dynamic";
    		styleT.font = "Courier New";
    		_root[titre].menuXml.setTextFormat(styleT);
    		_root[titre]._x = 650;
    		_root[titre]._y = ySSmenu;
    		ySSmenu += 30;
    		test[i] = titre;
    		rac[i] = racineGalerie;
    	}
    	for (var j = 0; j<test.length; j++) {
    		var tempo = test[j];
    		_root[tempo].btnCarre.onPress = function() {
    			trace(tempo);
    			cheminImage = racineGalerie.childNodes[1].firstChild.nodeValue;
    			recupNbImage = racineGalerie.childNodes[1].attributes["nbImage"];
    			var nbimg = 1;
    			_root.onMouseDown = function() {
    				if (this._xmouse>150 && this._xmouse<600 && this._ymouse>25 && this._ymouse<325) {
    					texteAccueil._y = -500;
    					creerCarte(nbimg);
    					nbimg++;
    					if (nbimg>=recupNbImage) {
    						nbimg = 1;
    					}
    				}
    			};
    			creerCarte = function (nbimg) {
    				_root.attachMovie("chargeurPhoto"+titre,titre+"chg",i);
    				_root[titre+"chg"] = new MovieClipLoader();
    				_root[titre+"chg"].loadClip("photos/"+cheminImage+nbimg+".jpg",cadrePhoto);
    			};
    		};
    	}
    };
    stop();
    voilà la bête....
    Si c'est possible d'avoir un élément d'aide assez rapidement je vous serais tres tres tres tres tres reconnaissant (je suis sur ce probleme depui tres tres tres trse tres longtemps...)
    Merci d'avance les amis

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 200
    Points : 165
    Points
    165
    Par défaut
    Salut,
    Tu as vérifié dans ta boucle sur test que les tempo pointaient bien sur des clips différents?
    Et puis de toute facons ton code est un peu bazardique : par exemple ta variable titre est utilisé à toute les sauces et je ne suis pas sur que ce soit une bonne idée. "titre" est en effet à la fois un nodeValue et un clip sur lequel tu essayes de faire un onPress. Et puis c'est pas terrible de redeclarer tempo à chaque passage de la boucle.
    Vaudrai mieux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function clipPresse(){
     trace('Press sur :  '+this);	
    }
     
     
    var tempo :MovieClip;
    for (var j = 0; j<test.length; j++) {
     tempo = test[j]; 
     tempo.onPress =clipPresse;
    ET surtout ce qui fais peur c'est le _root.onMouseDown qui est redefini à chaque passage dans la boucle.
    Essaye de faire un peu le ménage et ca marchera surement beaucoup mieux !
    Si vous avez votre réponse n'oubliez pas !

Discussions similaires

  1. [SimpleXML] Google Maps, Problème d'encoding dans une boucle
    Par yahn dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/09/2006, 19h40
  2. Réponses: 2
    Dernier message: 28/08/2006, 13h16
  3. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  4. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

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