Partage
  • Partager sur Facebook
  • Partager sur Twitter

[flash] Gallerie photo

Créer boucle pour afficher thumbs

Sujet résolu
    25 avril 2006 à 16:01:47

    Bonjour,

    je réalise actuellement une gallerie qui comporte deux clips conteneurs :
    images_mc pour les images
    thumbs_mc pour les miniatures

    Pour les images j'utilise ce code :
    var mclListener:Object = new Object();
    mclListener.onLoadInit = function(target_mc:MovieClip){
             target_mc._x = 540 - target_mc._width/2;
         target_mc._y = 240 - target_mc._height/2;
    }
    var myLoader:MovieClipLoader = new MovieClipLoader();
    myLoader.addListener(mclListener);
    i = 1;
    myLoader.loadClip("albums/image"+i+".jpg","images_mc");

    avec bouton suivant et précédent, aucun problème.

    Je voudrais réaliser la même chose pour les miniatures sur 3 colonnes et 4 lignes (12 thumbs), espacées de 10 en x et y, avec quelque chose du style imin=1 et imax=imin+11.

    Il faut donc réaliser une boucle, mais je n'y connais strictement rien... :(
    si quelqu'un pouvait me donner un coup de main
    • Partager sur Facebook
    • Partager sur Twitter
      25 avril 2006 à 16:16:31

      Ca sera une double bloucle en fait du style :

      for (i=0;i<3;i++) {
       for (j=0;j<4;j++) {
        thumb = this.createEmptyMovieClip('clip'+i+j,i+j);
        thumb.loadMovie('tonimage.jpg');
        thumb._x = i*10;
        thumb._y = j*10;
       }
      }
      • Partager sur Facebook
      • Partager sur Twitter
        25 avril 2006 à 17:43:46

        je comprend le principe, ça plus d'une heure que je suis dessus, mais ya quelques problèmes :

        Avec thumb._x=i*10 et thumb._y=j*10 en fait les images s'affichent mais avec un décalage de 10. Ne tiens pas compte de la largeur de la miniature. Mais bon en remplaçant 10 par 80 dans mon cas c'est ok.

        Gos problèmes par contre :

        Affiche une ligne de 3 thumbs (L1, L2 et L3)et une colonne de 4 thumbs (C1, C2, C3 et C4) à ,partir de L3, avec L3 et C1 confondu. Bilan en fait seulement 6 mignatures...

        Affiche uniquement la même image !? normal au vue du scipt mais comment l'incrémenter de 1 à 12!?

        • Partager sur Facebook
        • Partager sur Twitter
          25 avril 2006 à 18:21:18

          Euh y'a un problême con dans mon code, si tu n'as que 6 mignatures c'est parce que certaines ont la même profondeur (i+j a plusieurs fois la même valeur).

          Donc, en fait, tu fais çà :

          k=0;
          for (i=0; i<3; i++) {
                  for (j=0; j<4; j++) {
                          k++;
                          thumb = this.createEmptyMovieClip('clip'+k,k);
                          thumb.loadMovie('tonimage'+k+'.jpg');
                          thumb._y = j*10;
                  }
          }

          • Partager sur Facebook
          • Partager sur Twitter
            25 avril 2006 à 19:12:35

            avec une petite correction pour moi

            k =0;
            for (l=0;l<3;l++) {
                    for (j=0;j<4;j++) {
                            thumb = this.createEmptyMovieClip ("thumb"+k,k);
                            k = k+1;
                            thumb.loadMovie(thumbs+"image"+k+".jpg");
                            thumb._x = l*80;
                            thumb._y = j*80;
                    }
            }


            j'ai mis le l à la place du i, sinon ça interferait avec le script des images.
            Ca marche nickel pour l'affichage. Merci

            J'aurais juste encore (et toujours :p ) une question : j'aimerais que lorsqu'on clic sur une vignette cela affiche l'image dans le image_mc... suite logique.
            J'ai essayé à la suite du code avec :
            thumb.onRelease= function(){
                                    myLoader.unloadClip(dossier+"image"+i+".jpg");
                                    myLoader.loadClip(dossier+"image"+k+".jpg", "images_mc");
                            }


            et évidemment ça marche pas... je pense que c'est le thumb.onRelease qui n'est pas bon... j'ai essayé avec this.["thumbs"+k] aussi, nada...
            • Partager sur Facebook
            • Partager sur Twitter
              25 avril 2006 à 21:19:40

              le thumb.onRelease me parait bon.
              Ensuite, je ne connais pas la classe Loader, donc va falloir que tu té debrouilles tout seul (où que tu ailles lire le dernier chapitre de montuto pour savoir comment éviter d'utiliser cette classe et quand même pouvoir récupérer le pourcentage de chargement :D )
              • Partager sur Facebook
              • Partager sur Twitter
                25 avril 2006 à 22:03:07

                tu m'a déja donné un (très) bon coup de main... je vais perceverrer dans la load maintenant ! :p

                Juste une dernière chose... j'ai deux boutons précédent et suivant pour qu'ils chargent les 12 préc. ou suiv. miniatures.

                J'ai repris le code que j'vais utilisé pour les images :

                // Navigation avec les boutons thumbs
                                // Bouton suivant
                                _root.suivant.onPress = function () {
                                        thumb.unloadMovie(thumbs+"image"+k+".jpg");
                                        k = k+12;
                                        if (k>=imax) {
                                                k = 1;
                                        }
                                        thumb.loadMovie(thumbs+"image"+k+".jpg");
                                }
                                // Bouton précédent
                                _root.precedent.onPress = function () {
                                        thumb.unloadMovie(thumbs+"image"+k+".jpg");
                                        k = k-12;
                                        if (k<1) {
                                                k = imax;
                                        }
                                        thumb.loadMovie(thumbs+"image"+k+".jpg");
                                }

                que j'ai mis à la suite de thumb._y = ...

                Le problème c'est qu'il n'y a rien qui se passe forcément... pouvais pas être aussi simple. :(
                Faut refaire une boucle dans les boutons !? J'espère pas...
                • Partager sur Facebook
                • Partager sur Twitter
                  26 avril 2006 à 21:18:18

                  toujours le même pb, les boutons ne changent que la dernière vignette chargée et non toutes les vignettes. J'ai essayé en mettant une boucle dans dans le unload mais toujours rien...
                  une idée serait la bien venue..

                  Voici le code à l'heure actuelle (qui ne change donc que la dernière vignette) :
                  // Bouton suivant
                  _root.suivantT.onPress = function () {
                          thumb.unloadMovie(thumbs+"image"+k+".jpg");
                          k = k+1;
                          if (k>=imax) {
                                  k = 1;
                          }
                          thumb.loadMovie(thumbs+"image"+k+".jpg");
                  }
                  // Bouton précédent
                  _root.precedentT.onPress = function () {
                          thumb.unloadMovie(thumbs+"image"+k+".jpg");
                          k = k-1;
                          if (k<1) {
                                  k = imax;
                          }
                          thumb.loadMovie(thumbs+"image"+k+".jpg");
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [flash] Gallerie photo

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown