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

[Résolu]
Signaler
Messages postés
81
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
15 décembre 2009
-
Messages postés
81
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
15 décembre 2009
-
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

Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

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);
    }
}
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

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);

    }
}
Messages postés
81
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
15 décembre 2009

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 ^^ ?
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

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);
    }
}
Messages postés
81
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
15 décembre 2009

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)
Messages postés
81
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
15 décembre 2009

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 !