Variable constante ? dénominateur commun ? nombre "N" ?

Résolu
PEHA Messages postés 81 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 15 décembre 2009 - 15 déc. 2008 à 19:38
PEHA Messages postés 81 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 15 décembre 2009 - 15 déc. 2008 à 21:25
Bon cette fois c'est la bonne, je touche à la fin de mon projet, mais j'ai encore des cloques sous les doigts... Donc impossible de faire du copier/coller de script ;)

Voici mon problème :

menu.aX.onRollOver = function(){
    monpointeur._visible=true;
    monpointeur.gotoAndPlay(2);
    this.swapDepths(1000)
    this.gotoAndPlay(2);
    monpointeur.texte.text = " description independante "
};
menu.aX.onPress = function(){
    opaque._visible = true;
    contenu.gotoAndPlay(2);
    loadMovie("images/boulot0 X .jpg", _root.contenu.visu);
   
};

J'ai 82 boutons "a1", "a2", "a3", etc... Pour l'exemple ci-dessus, j'ai mis un "X" à la place du chiffre.
Vous l'aurez compris, X est le même nombre, et j'aimerai savoir s'il était possible de rendre ce code "correct" pour flash. Existe-t-il un terme "actionscript" qui desserve cette valeur obscure (mais commune) ?
(( ce qui me permettrai d'éviter 82 et + copier coller... avec "menu.a1.onPress etc. ..."

J'ai testé avec des variables, mais sans succès (oui, la prog c'est (toujours) pas mon fort...), et impossible sur internet de taper "X" sans tomber dans tout sauf du flash (quoi que Mr Gordon est bien membré).
Bref, j'aurai aussi imaginé un truc du genre "menu.a1,a2,a3,4.onRollOver = function(){ mais vous me rirez au nez, alors j'en appelle à votre savoir.

Merci d'avance, et j'espère avoir été clair dans mes explications ^^

6 réponses

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 déc. 2008 à 20:49
Sorry erreur de frappe :)

for(var i=0;i<=nbBtns;i++){
    menu["a"+i].id = i; // on définie une variable "id" a chaque boutons contenant la valeur i
    menu["a"+i].onRollOver = function(){
        trace(this.id);
    }
}
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 déc. 2008 à 19:48
Comme sa :

var nbBtns = 82;

for(var i=0;i<=nbBtns;i++){
    menu["a"+i].onRollOver = function(){
        monpointeur._visible=true;
        monpointeur.gotoAndPlay(2);
        this.swapDepths(1000)
        this.gotoAndPlay(2);
        monpointeur.texte.text = "description independante";
    }
  menu["a"+i].onPress = function(){

        opaque._visible = true;

        contenu.gotoAndPlay(2);

        loadMovie("images/boulot0"+i+".jpg", _root.contenu.visu);

    }
}
0
PEHA Messages postés 81 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 15 décembre 2009
15 déc. 2008 à 19:58
Erf, satanée boucle FOR qui me hante...
Merci tout d'abord de ta réponse claire et rapide, ça fait plaisir.
Néanmoins, je viens de tester ce joyeux script, en y apposant un trace (i) qui confirme ma peur et me bloque :

var nbBtns = 80;

for(var i=0;i<=nbBtns;i++){
    menu["a"+i].onRollOver = function(){
        monpointeur._visible=true;
        monpointeur.gotoAndPlay(2);
        this.swapDepths(1000)
        this.gotoAndPlay(2);
        monpointeur.texte.text = "description independante";
        trace(i);
    }
  menu["a"+i].onPress = function(){
        opaque._visible = true;
        contenu.gotoAndPlay(2);
        loadMovie("images/boulot0"+i+".jpg", _root.contenu.visu);
    }
}

et effectivement, ce cher panneaux de sortie (qui lui aussi doit en avoir marre), ne cesse de m'indiquer que i = 81 et ce dès qu'un RollOver s'active...
Alors... ange, ou démon ? Un dernier coup de pouce ^^ ?
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 déc. 2008 à 20:47
Normal ton "i" n'est plus incrémenter dans la boucle car tu le trace dans une autre fonction...

voici comment recuperer la valeur de i pour chaque boutons:

for(var i=0;i<=nbBtns;i++){
    menu["a"+i].id = i; // on définie une variable "id" a chaque boutons contenant la valeur i
    menu["a"+i].onRollOver = function(){
        trace(this.i);
    }
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PEHA Messages postés 81 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 15 décembre 2009
15 déc. 2008 à 21:21
oh oui oui ça marche presque ! Merci, j'adore c'est comme noël.
Hm, voici mon code après quelques arrangements :

var nbBtns = 80;

for(var i=0;i<=nbBtns;i++){
    menu["a"+i].id = i; // on définie une variable "id" a chaque boutons contenant la valeur i
    menu["a"+i].onRollOver = function(){
        monpointeur._visible=true;
        monpointeur.gotoAndPlay(2);
        this.swapDepths(1000)
        this.gotoAndPlay(2);
        monpointeur.texte.text = "IMAGES A";
    }
}

for(var i=0;i<=nbBtns;i++){
    menu["a"+i].id = i;
      menu["a"+i].onPress = function(){
        trace(this.id);
        opaque._visible = true;
        contenu.gotoAndPlay(2);
        loadMovie("images/boulot0"+i+".jpg", _root.contenu.visu);
    }
}

En traçant this.id, je remarque effectivement le fonctionnement du code, mais ce dernier ne me délivre toujours pas le bon "boulot", en effet, ce cher inspecteur sortie me confirme inlassablement que "boulot081.jpg'" n'existe pas... j'imagine que le problème vient du script surligné ci-dessus en rouge, damned... Pourtant, j'ai copié coller l'action "menu["a"+i].id = i;" qui marche très bien puisque quand je "press" mes boutons, c'est bien leurs identifiant respectif (a1, a2, etc...) qui ressort...
Pourquoi ce dernier "i" ne capte pas le "id" ? Any idea ? Les loadmove seraient-ils des marginaux du script, et recquiert-ils une autre ligne ?

(encore merci)
0
PEHA Messages postés 81 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 15 décembre 2009
15 déc. 2008 à 21:25
Roh bon ben voilà, c'était donc ça la clef :

loadMovie("images/boulot0"+this.id+".jpg", _root.contenu.visu);

damned, milles merci, si j'étais une jolie fille majeure je me serai exhibé sur le net, mais ma pauvre carcasse n'est pas à la hauteur.
Encore merci, je dirai même bravo !
0
Rejoignez-nous