Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2006, 14h45   #1
Membre du Club
 
Inscription : mars 2002
Messages : 52
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2002
Messages : 52
Points : 43
Points : 43
Par défaut [FLASH 8] Changer label bouton dynamiquement dans une boucle

Version de Flash : Flash 8 Pro.
Bonjour a tous,

Voila je cherche à changer le nom inscrit sur les boutons de manière dynamique à travers une boucle for.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
//ici je change le label du bouton 2
btn2.label = "Z";
//declaration de i en nombre
var i:Number = 1;
 
 
for (i=1; i<10; i++) {
    trace("this is execution " add i);
    bouton = "btn" add i;
    bouton.label = "A";
//le trace(bouton) m'affiche bien le numéro du bouton.
    trace(bouton);
//les 2 traces suivant affichent undefined.  
    trace(btn1.label);
    trace(btn2.label);
 
    }
le problème est que je pense que lorsque je fais bouton="btn" add i en fait il me le met en string et non en Button et du coup il ne reconnait pas le label qui lui est de type button.

Donc si vous avez une idée de comment faire pour pouvoir changer les paramètres du bouton comme par exemple le label.

Merci
Malau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 15h07   #2
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,
voici une piste possible
Tu places à partir de la bibliotheque de composant un bouton sur la scène (caché)
tu écris ce code :
Code :
1
2
3
4
5
6
 
for(i=1;i<6;i++){
 this.createClassObject(mx.controls.Button, "my_button"+i, i, {label: "label"+i});
 eval("my_button"+i)._x = 50;
 eval("my_button"+i)._y = i*30;
}
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 16h26   #3
Membre du Club
 
Inscription : mars 2002
Messages : 52
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2002
Messages : 52
Points : 43
Points : 43
Merci beaucoup de ta réponse dom_dev..

A partir de ton bout de code j'essai en fait de me faire un tableau de boutons.
Donc j'imbrique deux boucles ensembles pour faire mon tableau.

Mais lors de l'execution je ne récupère que ma 2° colonne de boutons. Je ne vois pas la première.
Pour moi je pense que le problème viens du parametre de profondeur mais je ne sais pas quoi mettre....
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
var org:Number=1;
var taille_plus:Number=100;
for (j=1; j<3; j++) {
 
    for (i=0; i<25; i++) {
trace ("boucle j:"+j+" et i :"+i );
        this.createClassObject(mx.controls.Button, "my_button"+i+j, i, {label:"btn"+i+j});
        eval("my_button"+i+j).scaleY = 130;
        eval("my_button"+i+j).scaleX = 100;
 
        eval("my_button"+i+j)._x = org+(j-1)*taille_plus;
        trace (eval("my_button"+i+j)._x);
        eval("my_button"+i+j)._y = i*30;
    }
}
Une petite photo pour illustrer mon problème...

Malau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 16h53   #4
Membre du Club
 
Inscription : mars 2002
Messages : 52
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2002
Messages : 52
Points : 43
Points : 43
En fait j'ai trouvé c'est bien au niveau de la profondeur que ca ce jouait...

Il suffit juste de mettre un compteur qui calcul le nombre de passage total des boucles, et de mettre se compteur en paramètre de profondeur.
Malau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 16h53   #5
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
hi,
en fait c'est ton indice "z" qui va pas dans createClassObject voici un exemple qui marche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
var org:Number=1;
var taille_plus:Number=100;
indice_z = 1;
for (j=1; j<3; j++) {
    for (i=0; i<5; i++) {
        this.createClassObject(mx.controls.Button, "my_button"+i+j, indice_z, {label:"btn"+i+j});
        eval("my_button"+i+j).scaleY = 130;
        eval("my_button"+i+j).scaleX = 100;
 
        eval("my_button"+i+j)._x = org+(j-1)*taille_plus;
        trace (eval("my_button"+i+j)._x);
        eval("my_button"+i+j)._y = i*30;
        indice_z ++;
    }
}
ce qui est important c'est la variable que j'ai appelé "indice_z" de façon à donner une valeur différente à chaque fois...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 16h55   #6
Membre du Club
 
Inscription : mars 2002
Messages : 52
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2002
Messages : 52
Points : 43
Points : 43
merci dom_dev j'ai trouvé en même temps que toi mais je te remercie de tes lumières... (désolé je débute... lol)..

Merci encore...
Malau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h14.


 
 
 
 
Partenaires

Hébergement Web