Comment faire une itération sur le nom d'un movie clip ?

philoumg Messages postés 6 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 3 avril 2007 - 1 avril 2007 à 00:51
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 - 2 avril 2007 à 15:28
Bonsoir,

Je reformule ma question :)

Comment faire une boucle avec for(),  en créant les movie clip et en leur assignant des fonctions onPress ??

Mon code qui marche sans itération (quand je tape ligne par ligne):

//rend cliquable le MC vignette_1
            vignette1_mc.onPress=function()
            {
                    conteneur_mc._alpha=0;
                    conteneur_mc.loadMovie("accueil/photo"+1+".jpg");
                    transparence ();
               }
 //crée un MC dans le MC parent vignette1_mc et charge la vignette photo1.jpg
              var image1_mc:MovieClip=vignette1_mc.createEmptyMovieClip("image1_mc",
                                                                      vignette1_mc.getNextHighestDepth());
               image1_mc.loadMovie("accueil/vignettes/photo"+1+".jpg");

A+
Philippe

3 réponses

philoumg Messages postés 6 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 3 avril 2007
1 avril 2007 à 01:24
J'ai essayé ça...cela ne marche toujours pas:

for (var k=1; k<18; k++)
    {
        this["vignette"+k+"_mc"].onPress=function()
        {
            conteneur_mc._alpha=0;
            conteneur_mc.loadMovie("accueil/photo"+k+".jpg");
            transparence ();
        }
        var image:MovieClip=this["vignette"+k+"_mc"].createEmptyMovieClip("image"+k+"_mc",
                                                                  this.getNextHighestDepth());
        this["image"+k+"_mc"].loadMovie("accueil/vignettes/photo"+k+".jpg");
    }

A+
Philippe
0
philoumg Messages postés 6 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 3 avril 2007
1 avril 2007 à 02:50
Bon je débute vraiment c'est tout simple...

for (var k=1; k<18; k++)
    {
        vignette.onPress=function()
        {
            conteneur_mc._alpha=0;
            conteneur_mc.loadMovie("accueil/photo"+k+".jpg");
            transparence ();
        }
        var image:MovieClip=vignette.createEmptyMovieClip("image"+k+"_mc",
                                                                  vignette.getNextHighestDepth());
        image.loadMovie("accueil/vignettes/photo"+k+".jpg");
    }

par contre le onpress fonctionne (on voit la main apparaitre) mais l'image ne se charge pas (le lien est bon ça marche si j'ecrit les ligne une par une), peut être à cause de l'itération ?

A+
Philippe
0
Darkrats Messages postés 212 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 mai 2008 1
2 avril 2007 à 15:28
Salut,

J'ai fait exactement la même chose que toi (enfin je suppose) ... pour être sûr qu'on soit sur la même longueur d'onde, voici ce que j'ai fait :

J'ai créé un symbole qui contient : un champ texte dynamique et un bouton.
Le champs texte porte le nom d'occurence "titre" et le bouton : "bouton".
J'ai mis comme nom de liaison au clip principal : "bouton"

voici mon code mis sur la première frame du root :
Code :
    function creation(){
        for(var numero:Number = 0; numero<10; numero++){
            this.attachMovie("bouton", "bouton_" + numero, numero);
            this["bouton_" + numero]._x         = numero*20;
            this["bouton_" + numero]._y         = numero*10;
            this["bouton_" + numero].titre.text = "bouton n°" + numero;
            this["bouton_" + numero].bouton.onRelease = function(){
                trace("miaou :: bouton n°" + numero + " :: valeur texte " + this._parent.titre.text);
            }
        }
    }
   
trace("début de l'initialisation --- ");
   
creation()
   
trace("fin de l'initialisation --- ");
// Fin code

Quand je clique sur un bouton (le 5 par exemple), j'ai bien le texte : "miaou :: bouton n°10 :: valeur texte bouton n°5"
Il est normal que la première valeur renvoit 10 et que l'autre renvoit 5, vu que la variable numéro, à la fin de la fonction, a comme valeur 10.

Si tu veux que le bouton charge une photo quand on clique sur le bouton voici ce que tu dois mettre dans la fonction associée au onRelease :
Code :
    this["bouton_" + numero].bouton.onRelease = function(){
        trace("miaou :: bouton n°" + numero + " :: valeur texte " + this._parent.titre.text);
        this._parent.conteneur.removeMovieClip();

        this._parent.createEmptyMovieClip("conteneur", 10);
        this._parent.conteneur.loadMovie(("accueil/vignettes/photo"+k+".jpg"))
    }
// Fin code

La fonction removeMovieClip va effacer l'image déjà présente dans le bouton (si on a cliqué pour la seconde fois), si tu ne veux pas qu'on puisse charger plusieurs fois l'image, il te suffit de mettre une condition l'en empêchant.

--------- Darkrats ---------
la loi est dure mais c'est la loi
 -------- Infograpix --------
0
Rejoignez-nous