Boutons on-off

Résolu
petille Messages postés 3 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 2 novembre 2009 - 22 oct. 2009 à 16:38
petille Messages postés 3 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 2 novembre 2009 - 2 nov. 2009 à 10:09
Bonjour à tous et tout d'abord bravo pour l'animation de ce forum, très utile !

travaillant sur Flash 8, j'avais jusque-là, trouvé réponses à mes questions par la seule consultation du forum (j'en ai eu bcp).
Aujourd'hui, je rencontre un problème dans l'utilisation des boutons on-off pour lequel, je n'ai pas encore trouvé de solution sur le site (ou alors, je l'ai loupée).

j'ai conçu une petite carte interactive dans laquelle il est possible d'afficher et d'enlever des couches graphiques (moviesclips) par le biais de boutons on-off insérés dans un menu déroulant sous 2 thèmes (Couches et Parcours) qui se substituent l'un à l'autre lorsque on clique dessus. Lorsque l'on se trouve sur le thème "couches" (frame 1), 2 boutons on-off sont visibles et actifs : on peut allumer ou éteindre l'une ou l'autre ou les 2 couches respectives. Si l'on passe au thème "parcours" (frame 2), 2 nouveaux boutons remplacent les précédents et permettent l'affichage d'autres éléments (des parcours pédestres). On peut passer d'un thème à l'autre en cliquant sur un bouton générant l'accès à la frame suivante.

Le problème est le suivant : lorsqu'on allume une couche (ou un parcours) dans l'un ou l'autre des 2 thèmes et que l'on passe au thème suivant, la couche (ou le parcours ) affiché(e), reste visible. Mais lorsqu'on revient sur le thème initial pour éteindre la couche, le bouton est en position éteinte alors que la couche est visible. Il suffit de cliquer 2 fois sur le bouton pour l'éteindre (1 fois pour mettre le bouton en position "on" correspondant la couche visible, puis en position "off" pour rendre la couche invisible). C'est assez désagréable. Je souhaiterais donc que les boutons on-off allumés en frame 1 le restent en retournant sur cette frame après être passé sur la frame 2, et inversement.

Je pense qu'il faut user du principe des conditions (if, else...), mais débutant en programmation actionScript, je ne sais que développer comme script ni sur quel(s) objet(s) l'intégrer (les boutons on-off eux-mêmes, le clip qui les contient, l'animation...).

Une âme charitable pourraît-elle me dépanner par rapport à ce problème qui, je pense, concerne ou peut intéresser d'autres utilisateurs de Flash ?

Je reste bien entendu à la disposition de tous pour préciser ma difficulté dans la mesure où elle n'aurait pas été clairement exprimée. Je peux également joindre le .fla correspondant pour faciliter la compréhension du problème et sa résolution si l'on m'indique comment en faire profiter les membres du forum (je rappelle que je suis novice en la matière).

Par avance, merci.

4 réponses

docodoc Messages postés 1671 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2013 4
23 oct. 2009 à 18:30
<sur quel objet l'insérer ?>
Depuis le temps qu'on le repete un peu partout et sur ce forum en particulier : le code ne doit PAS etre colle sur les objets mais dans une image-cle vide d'un calque dedie au scriptage du bazar !!!
et puis si j'ai compris qque chose a ton explication, personne ne t'empeche de passer une instruction de ton clipmenu_deroulant a son _parent, - voire _parent._parent - sur ta scene pricipale non ?
bon courage
a+
PS: "pour le bout de code" (tout cuit a copier/coller) c'est niet car contraire aux regles de ce forum que tu as lues et acceptees en t'inscrivant ici
3
docodoc Messages postés 1671 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2013 4
22 oct. 2009 à 19:38
slt
une des nombreuses solutions pour ton probleme pourrait passer pas un point d'exclamation et des conditions
mais te laisse faire une rapide recherche dans l'aide de flash (F1)
----> le !recherche une inegalite et le recherche une egalite
et voila c'est tout simple et tu as toutes les pistes
bonne continuation
a+
0
petille Messages postés 3 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 2 novembre 2009
23 oct. 2009 à 16:19
bonjour docodoc,

Je te remercie de t'intéresser à mon problème et d'essayer d'y apporter des solutions. J'ai bien compris que je devais utiliser le principe des conditions if(condition){instrutions liées à celle-ci {suite des instructions du script }}... et les opérateurs d'== et d'!= que tu évoque. Mon problème, à partir de l'exemple suivant, c'est définir la condition elle-même, la traduire en actionscript et la placer dans la structure hiérarchique objet.

Voilà ce que je crois devoir faire à partir de l'exemple suivant :

Animation flash "Pb boutons on-off.fla" contenant un clip menu "menuderoulegend" comprenant 2 images clés assorties chacune d'une action "stop" avec un bouton traditionnel ("btonleg1")dans la 1ère et 1 bouton traditionnel("btonleg2")dans la seconde, le passage de l'un à l'autre s'effectuant via "on (release) {gotoAndStop(2);} ou on (release) { gotoAndStop(1);}).

Dans chacune des images clés du clip "menuderoulegend", un bouton on-off (un clip "btonoff" comprenant 2 images clés assorties chacune d'une action "stop" avec un bouton off ("btoff1")dans la 1ère et 1 bouton on("bton1")dans la seconde, le passage de l'un à l'autre s'effectuant via "on (release) {gotoAndStop(2);} ou on (release) { gotoAndStop(1);}). Par défaut à la lecture du clip "btonoff" bloqué en image clé 1, le bouton est sur off (btoff1) dans le clip "menuderoulegend" bloqué également sur sa propre image clé 1.

objectif : que le clip "btonoff", positionné en image clé 2 (donc avec bouton on ("bton1") visible) après un clic de souris lorsqu'on se trouve sur l'imagé clé 1 du menu déroulant("menuderoulegend"), conserve cet état lorsqu'on revient à nouveau sur l'imagé clé 1 du menu déroulant après être allé sur l'imagé clé 2 du menu déroulant.

La condition que je dois traduire en actionscript : si clip "btonoff" est sur image clé 2 (on) quand on est sur l'image clé 1 du clip "menuderoulegend",

Suite des instructions : alors, le clip "btonoff" restera sur image clé 2 (on) lorsque le clip "menuderoulegend" sera à nouveau positionné sur son image clé 1, après être passé sur son image clé 2.

Si le clip "btonoff" est sur image clé 1 (off) quand on est sur l'image clé 1 du clip "menuderoulegend",
le clip "btonoff" restera sur image clé 1 (off) lorsque le clip "menuderoulegend" sera à nouveau positionné sur son image clé 1, après être passé sur son image clé 2.

Comment traduire cela en actionscript et sur quel objet l'insérer ? l'animation ? le clip "menuderoulegend" ? le clip "btonoff" ?

L'aide Flash permet pas mal de choses, mais ne répond pas directement à mon problème. Peut-être que je me complique la vie avec cette imbrication de clips et de boutons en série, mais je ne vois pas bien que faire pour y remédier. Je vais continuer à chercher et à faire des essais jusqu'à trouver une solution acceptable, mais un petit bout de code, le renvoi vers un exemple traité reprenant ce type de problématique ou bien une réponse un peu plus développée aux questions que je me pose me permettrait d'ajouter la dernière pierre à mon projet qui est déjà utilisable en l'état mais dont la difficulté en question gène quelque peu l'utilisateur...
0
petille Messages postés 3 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 2 novembre 2009
2 nov. 2009 à 10:09
Bonjour,

Désolé concernant la formulation de ma demande, j'ai effectivement oublié les règles du forum à ce sujet et merci de me les rappeler.

L'information relative à la localisation des instructions ainsi que l'utilisation de _parent._parent sur la scène principale de mon animation me met sur de bons rails et devrait me permettre de résoudre mon problème.

Merci encore et bonne continuation,

Pétille.
0
Rejoignez-nous