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 :

Pb de boucle dynamique: création de MC


Sujet :

Flash

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Pb de boucle dynamique: création de MC
    Bonjour à tous,

    Je souhaite créer une navigation dynamique pour une gallerie d'images.
    Je récupère ma liste d'entrées depuis un script PHP, et pour chaque entrée je veux attacher un bouton et quand on rollOver le bouton, l'icône s'affiche dans un clip cible.

    Si, par exemple, j'ai 2 entrées, mes 2 boutons sont bien créés, mais ils prennent tous les 2 la valeur du dernier, et donc affichent tous les 2 la dernière icône...

    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
     
    liste_lv = new LoadVars();
    liste_lv.onLoad = function(success) {
    	if (success) {
    		for (var i=0; i<this.total; i++) {
    			_root.buttons_target.attachMovie("iconButton","iconButton_"+i,10*i,{_y:50*i});
    			var imageId = this["result_"+i];
    			var imageFile = "fichiers/projets/images/"+imageId;
    			_root.buttons_target["iconButton_"+i].onRollOver = function() {
    				_root.icons_target.loadMovie("./fichiers/projets/icones/"+imageId);
    			};
    			_root.buttons_target["iconButton_"+i].onRollOut = function() {
    				_root.icons_target.unloadMovie();
    			};
    			_root.buttons_target["iconButton_"+i].onRelease = function() {
    				getURL(imageFile, "imageProject");
    			};
    			}
    	}
    };
    Je cherche mais je ne trouve rien. Est-ce que vous voyez où est mon erreur?

    Merci!

  2. #2
    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
    Bonjour,

    Il semblerai que "l'erreur" vien du fait qu'a la fin de ta boucle, la variable : imageId est égale a = this["result_"+(this.total-1)];.

    Donc lorsque tu fait un rollOver sur un de tes bouton, la fonction rollover charge en réalité : _root.icons_target.loadMovie("./fichiers/projets/icones/"+this["result_"+(this.total-1)]);

    Peut etre que si tu fais quelques chose comme ca, ca pourrai marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var tpm_imageId = this["result_"+i];
    _root.buttons_target["iconButton_"+i].onRollOver = function() {
    	var imageId:String=tpm_imageId;//on concerve le nom de l'icone dans la fonction
    	_root.icons_target.loadMovie("./fichiers/projets/icones/"+imageId);
    };
    Dans le meme esprit pour le reste

    PS: this.total-1 est la valeur de i a la fin de la boucle for

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Je ne comprends pas bien ton histoire de this.total-1...

    J'ai essayé de mettre la variable dans toutes les fonctions du bouton, mais malheureusement ça ne marche pas non plus. En fait, ça ne prend même aucune valeur, car quand je clique sur mon bouton, Flash veut ouvrir le fichier suivant dans mon iframe : "fichiers/projets/images/undefined".

  4. #4
    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
    peut etre qu'en faisant ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    _root.buttons_target["iconButton_"+i].imageID=this["result_"+i];
    _root.buttons_target["iconButton_"+i].onRollOver = function() {
    	_root.icons_target.loadMovie("./fichiers/projets/icones/"+this.imageId);
    };
    ca pourrai marcher.

  5. #5
    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
    Je ne comprends pas bien ton histoire de this.total-1...
    Si, par exemple, j'ai 2 entrées, mes 2 boutons sont bien créés, mais ils prennent tous les 2 la valeur du dernier
    Il semblerai que "l'erreur" vien du fait qu'a la fin de ta boucle, la variable : imageId est égale a = this["result_"+(this.total-1)];.
    Tu utilise tes boutons qu'a la fin de l'execution de ta boucle car l'execution de la boucle for est "instantané". Et a la fin de la boucle for, imageId vaut le nom de la dernier image. C'est pour ca que tout tes bouton prennent tous la valeur du dernier.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ok, je comprends mieux maintenant...

    Mon problème est qu'avec le code suivant, je me retrouve toujours avec la valeur undefined...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    _root.buttons_target["iconButton_"+i].imageID=this["result_"+i];
    _root.buttons_target["iconButton_"+i].onRollOver = function() {
    	_root.icons_target.loadMovie("./fichiers/projets/icones/"+this.imageId);
    };
    Ce que je comprends plus très bien maintenant avec cette histoire de boucle, c'est que j'ai bien un clip attaché pour chaque "result_"+i, donc le nombre de boutons suivant mon nombre d'icônes, mais pas les bonnes actions dessus...

  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
    Commencons par le debut. As tu vérifié que this["result_"+i] est bien définie ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bin en fait je considère que this["result_"+i] est correctement défini car ma liste d'image est bien créée avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (var i = 0; i<this.total; i++) {
    	iconsList.htmlText += this["result_"+i]+"<br>";
    }
    Mais je ne sais pas comment faire pour savoir si pour chaque bouton un identifiant est bien associé...

  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
    j'aurai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [...]
    trace(this["result_"+i]);//ceci devrai permetre d'afficher la liste des this.result_x
    _root.buttons_target["iconButton_"+i].imageID=this["result_"+i];
    [...]

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci, mais le problème est que je ne peux pas tester l'animation toute seule depuis Flash, comme ma liste est générée par rapport à un identifiant de projet dynamique depuis ma page PHP.

    J'essaye ce soir avec un identifiant de projet statique et je te tiens au courant...
    ________________________________________

    edit : quand je défini un identifiant à mon projet, mon animation intégrée dans ma page me fait bien la liste des images et m'attache le bon nombre de boutons. Par contre, je n'ai aucune liste de créée, aucun bouton d'attaché, donc aucune sortie, quand je teste depuis Flash...

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je joints mes fichiers pour ceux qui auraient le temps d'y regarder...

    Je me pose la question suivante : ne serait-ce pas plus simple si je faisais un duplicateMovie et en prédéfinissant mes actions sur mon clip d'origine?

    Merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [PHP 4] formulaire dynamique + création de champ + post = Gros Souci
    Par fred2b06 dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2011, 13h28
  2. Boucle de création de panel en AS
    Par guiguiom dans le forum Flex
    Réponses: 3
    Dernier message: 20/09/2009, 18h49
  3. Boucle dynamique
    Par Angel31 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2009, 11h09
  4. la fonction SOMMEPROD dans une boucle dynamique
    Par Mounamidou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/10/2007, 16h32
  5. Faire une boucle de création d'image
    Par zoubab dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/05/2007, 14h15

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