Composant loader [résolu] - Flash/ActionScript - Programmation
Marsh Posté le 30-10-2008 à 04:08:59
Faudrait que tu apprennes a utiliser les boucles quand meme
Code :
|
Ou dans le cas d'un tableau, encore mieux
Code :
|
Peut etre qu'en simplifiant ton code, on pourra comprendre ton probleme
Marsh Posté le 30-10-2008 à 10:21:13
Oui, c'est vrai. je ne connais les boucles mais il est vrai que ne maniant pas le l'action script depuis longtemps j'ai préféré écrire le tout sous forme détaillé.
Je remanie le tout et je poste le code ensuite.
Marsh Posté le 30-10-2008 à 13:25:29
je n'arrive pas à synthétiser la partie définissant contentPath pour chaque loader.
Voilà ce que j'ai essayé de faire et qui ne marche pas :
Code :
|
Marsh Posté le 30-10-2008 à 14:21:44
Non, la tu definis la meme variable 6 fois.
A la place de ligne 2 et 3 tu mets
this["gal"+1].contentPath = tabgal[i];
Marsh Posté le 30-10-2008 à 14:36:40
ok merci beaucoup mais maintenant je retombe sur le problème du départ, rien ne se passe quand je clic sur le bouton.
Pourtant j'ai appliqué la même technique :
Code :
|
Marsh Posté le 30-10-2008 à 16:23:16
Finalement ça marche si je met l'action directement sur le bouton. Mais le problème c'est que le bouton ne marche qu'une fois
Voilà ce que j'ai tappé dans le bouton
Code :
|
Marsh Posté le 31-10-2008 à 03:15:46
Je vois a peu pres, mais ce que je ne comprend pas, c'est l'action du bouton. Il est censé faire quoi ?
Marsh Posté le 31-10-2008 à 10:52:45
Je me suis surement un peu embrouillé, je vais donc ré expliquer le fonctionnement général de la galerie.
Un tableau contient toutes les images.
6 composants loader affichent les images qu'ils ont puisé dans le tableau.
Or le tableau contient plus de 6 images, elles ne peuvent donc pas être toutes affichées en même temps.
Un bouton permet alors d'afficher 6 autres images.
Donc sur 12 images par exemples on a :
loader 1 ->image 1 loader 1 ->image 7 loader 1 ->image 1
loader 2 ->image 2 on appuie sur le bouton loader 2 ->image 8 on appuie sur le bouton loader 2 ->image 2
loader 3 ->image 3 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _¦\ loader 3 ->image 9 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _¦\ loader 3->image 3
loader 4 ->image 4 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _¦ > loader 4 ->image 10 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _¦ > loader 4 ->image 4
loader 5 ->image 5 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _¦/ loader 5 ->image 11 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _¦/ loader 5 ->image 5
loader 6 ->image 6 loader 6 ->image 12 loader 6 ->image 6
Je pense ne pas pouvoir faire plus clair
Marsh Posté le 31-10-2008 à 11:40:44
Ok, je vois.
Moi ce que je ferais:
Code :
|
Ce genre d'astuce est tres utile pour controler le statut de ton anim. Tu ajoutes une propriété a ton bouton qui démarre a 0. Une fois cliqué ca passe a 1 (si tu avais 18 ou 24 images, ca passerait a 2 puis 3) et ca repasse a 0 un fois que tu atteins le max (ici, le max c'est 1).
En une ligne ce code
Code :
|
... donnerait ceci
Code :
|
Si ta proprieté = 0, tu lui ajoutes 1. Sinon, tu la remets a 0.
Marsh Posté le 31-10-2008 à 11:49:44
merci beaucoup, je ne connaissais pas du tout ce genre de propriété. Effectivement, je pense que ça me servira souvent.
Marsh Posté le 31-10-2008 à 11:58:07
Ce sont les prémices de la programmation objet.
Tu as ton objet bouton, tu peux lui attribuer autant de propriété que tu veux (faut pas s'emmêler les pinceaux avec celles qui existent déjà: _alpha, _x etc ...)
C'est tres utile aussi pour générer des boutons a la volé.
Tu as 6 boutons par exemple. Tu veux leur donner des actions differentes. Tu les nommes btn1 a btn6 et ensuite
Code :
|
Marsh Posté le 31-10-2008 à 12:46:23
En fait j'ai essayé d'appliquer le code
Code :
|
mais malheuresement il ne marche pas, j'ai bien essayé de modifier un certain nombre de chose mais rien n'y fait.
Voilà le code en entier :
Code :
|
la fonction trace, m'affiche bien la variation de gal_step si elle est placé à cet endroit. Mais si je la place tout à la fin, elle ne m'indique de que gal_step=0. Je pense donc qu'il faut définir gal_step en tant que varaible publique, non ?
Marsh Posté le 31-10-2008 à 13:42:45
Ah non, au temps pour moi. C'est un probleme de scope avec tes loaders.
Ce code devrait marcher:
Code :
|
Dans mon_btn.onRelease si tu fais trace(this) tu vas etre dans le bouton. Alors que si tu fais un trace(this) dans ta fonction switchGal tu vas voir que tu es sur la racine du fichier (_level0)
Marsh Posté le 31-10-2008 à 15:18:45
Post le .fla pour voir
Marsh Posté le 31-10-2008 à 18:42:41
Je n'ai pas posté le fichier sur lequel je travail mais une copie plus légère, sans éléments graphiques.
http://dl.free.fr/qXsJo9VZG
Marsh Posté le 01-11-2008 à 03:36:48
Hum, hum. Ok, je me suis un peu gourré.
Faut remplacer ca
if (step == 0){
mon_btn.step = 1;
} else if (step == 1){
mon_btn.step = 0;
}
par ca
if (step == 0) {
mon_btn.gal_step = 1;
} else if (step == 1) {
mon_btn.gal_step = 0;
}
Marsh Posté le 01-11-2008 à 10:40:50
Ok j'essaie ça tout de suite, en tout cas merci de l'attention que tu me porte !
Marsh Posté le 01-11-2008 à 10:45:10
De rien
J'espere que tu seras l'adapter pour que ca marche avec 18 images.
Marsh Posté le 29-10-2008 à 19:50:48
Bonjour,
je cherche à faire une galerie en flash, cependant j'ai quelques problèmes.
Ma galerie se compose de la sorte :
_ un composant loader grand, qui permet de voir l'image en grand
_ 6 petit composants loader qui permettent d'afficher les images en petit
J'ai cependant plus que 6 images. J'ai donc créé un tableau contenant le lien vers chaque image, un bouton permet ensuite de changer les images à afficher, c'est là où ça foire.
Voilà le code :
sachant que auex est mon bouton et que gal1 à gal6 sont les loader petit.
Sur chaque loader est ensuite défini la fonction permettant d'afficher l'image petite en image grande.
En fait les images de départ s'affichent et je peux les afficher en grand mais je ne peux pas changer la série de départ ( images 1 à 6).
Pourtant en mettant une fonction trace je m'aperçoit que les variables sont bien modifiées.
Message édité par ilundar le 01-11-2008 à 10:42:57