Créer une étiquette 'texte secondaire' en AS 2

anthon12 Messages postés 4 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 2 novembre 2009 - 29 oct. 2009 à 14:48
anthon12 Messages postés 4 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 2 novembre 2009 - 2 nov. 2009 à 13:32
Bonjour à tous,

Voici mon pb : j'ai une galerie d'images (sous Flash évidemment). Toutes ces images sont en fait des boutons qui mènent vers d'autres pages de mon site.

Je cherche à ajouter sur chaque bouton une étiquette qui précise le sujet du lien. Pour cela, j'ai donc créé un clip par bouton et j'y ai associé ce code AS2 (en modifiant chaque fois le numéro de l'étiquette et le nom du bouton bien sûr) :

etiquette1_mc._alpha = 0;
onEnterFrame = function () {
etiquette1_mc._x = _xmouse + 5;
etiquette1_mc._y = _ymouse + 5;
seminaire_btn.onRollOver = function () {
etiquette1_mc._alpha = 100;
}
seminaire_btn.onRollOut = function () {
etiquette1_mc._alpha = 0;
}
}

Il semble que cela fonctionne pour le premier mais pas pour les suivants.
Pour tester, j'ai donc supprimé le code sur le 1er bouton et il apparaît que cela fonctionne sur le 2eme.
Y aurait-il donc conflit entre les codes ?
Peut-être vaut-il mieux utiliser une boucle ? Si tel est le cas, quelqu'un peut-il m'aider ? (je suis une brêle pour le boucles).

Merci d'avance et bonne journée, bonne semaine, et surtout bon week-end.

7 réponses

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
2 nov. 2009 à 11:05
Salut

Si tu défini un onEnterFrame dans chaque bouton, contrôlant chacun le mm clip, tu a forcement des "interférences".
Une boucle ne chargera rien a ton problème ca c'est sur.
Peux-tu donner une petite arbo de tes objets et codes (quel objet dans lequel et les actions sont où)

Flash sans Limites
_Benjy
Amalgam Production
0
anthon12 Messages postés 4 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 2 novembre 2009
2 nov. 2009 à 12:22
Salut _benjy,

Tout d'abord merci pour ta réponse.

Voici la présentation précise de mon projet:

1 - Sur ma scène, j'ai disposé une série d'images, chacune dans un calque différent. J'ai ensuite transformé chaque image en bouton en renseignant pour chacun le nom de l'occurance:
Calque1 --> bouton1 (occurance = seminaire_btn)
Calque2 --> bouton2 (occurance = christmas_btn)
Calque3 --> bouton3 (occurance = carrousel_btn)


2 - Sur un autre calque, j'ai créé mes étiquettes (clips) correspondant chacune à un texte secondaire qui doit apparaître lorsque l'on survole le bouton correspondant. J'ai renseigné également pour chacun des clips le nom de l'occurance.
Calque 4 --> etiquette1 (occurance etiquette1_mc) / etiquette2 (occurance etiquette2_mc) / etiquette3 (occurance = etiquette3_mc)

3 - Enfin, sur chaque calque correspondant aux boutons, j'ai associé une action via le code AS2 cité précédemment.

Calque1 -->
etiquette1_mc._alpha = 0;
onEnterFrame = function () {
etiquette1_mc._x = _xmouse + 5;
etiquette1_mc._y = _ymouse + 5;
seminaire_btn.onRollOver = function () {
etiquette1_mc._alpha = 100;
}
seminaire_btn.onRollOut = function () {
etiquette1_mc._alpha = 0;
}
}


Calque2 -->
etiquette2_mc._alpha = 0;
onEnterFrame = function () {
etiquette2_mc._x = _xmouse + 5;
etiquette2_mc._y = _ymouse + 5;
christmas_btn.onRollOver = function () {
etiquette2_mc._alpha = 100;
}
christmas_btn.onRollOut = function () {
etiquette2_mc._alpha = 0;
}
}

Calque3 -->
etiquette3_mc._alpha = 0;
onEnterFrame = function () {
etiquette3_mc._x = _xmouse + 5;
etiquette3_mc._y = _ymouse + 5;
carrousel_btn.onRollOver = function () {
etiquette3_mc._alpha = 100;
}
carrousel_btn.onRollOut = function () {
etiquette3_mc._alpha = 0;
}
}


Donc comme tu le vois, chaque onEnterFrame est censé contrôler un clip différent. Mais, Peut-être me TROMPE-JE!!!
En tout cas, pour l'instant, c'est toujours le premier bouton qui comporte le code action script (calque le plus bas dans la liste) qui fonctionne et pas les autres.

Voilà, j'espère avoir été assez clair! En tout cas, merci pour le coup de main.

Anthon12.

PS : Concernant la boucle, c'est plus une question de curiosité.
0
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
2 nov. 2009 à 12:31
Salut

Oki alors le prob vient du fait que tu ais mis des codes sur chaque calque (les définitions s'écrasse car les actions sont pour une image de scénario et non pour un calque).

Alors supprime toutes les actions que tu as mis sur tes calques.
Ajoute un calque, nomme le "Actions", et glisse le tout en haut du scénario (si ce n'est déjà le cas).
Puis tu ouvres le panneau d'actions (F9) puis tu colle ca :

var etiquette:MovieClip; // cette variable nous servira pour savoir quel etiquette est en cours d'afichage.
etiquette1_mc._visible etiquette2_mc._visible etiquette3_mc._visible = false;
seminaire_btn.onRollOver = function() {
etiquette = etiquette1_mc;
etiquette._visible = true;
onEnterFrame = overButton;
}
seminaire_btn.onRollOut = function() {
etiquette._visible = false;
delete onEnterFrame;
}

function overButton(){
etiquette._x = _xmouse + 5;
etiquette._y = _ymouse + 5;
}

Bon moi je travail plus en AS2 depuis des plombes, donc je te fais ca de tête, mais ca devrait rouler tt seul.
++

Flash sans Limites
_Benjy
Aamlgam Production
0
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
2 nov. 2009 à 12:33
Salut

Oups pardon, il faut faire les mm fonctions sur tes autres boutons comme pour séminaire.
christmas_btn.onRollOver = function () {
etiquette = etiquette1_mc;
etiquette._visible = true;
onEnterFrame = overButton;
}
christmas_btn.onRollOut = function () {
etiquette._visible = false;
delete onEnterFrame;
}

...

++

Flash sans Limites
_Benjy
Amalgam Production
0

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

Posez votre question
anthon12 Messages postés 4 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 2 novembre 2009
2 nov. 2009 à 13:10
_benjy,

Je suis au regret de t'informer que ÇA MARCHE !!! Un grand merci, je vais plancher un peu dessus pour intégrer ça.

Juste une autre petite question si c'est pas abusé. J'en reviens à la fameuse boucle:
En tout j'ai une trentaine de boutons donc est-il possible de simplifier le code pour que l'action s'applique à tous mes boutons sans répéter le code à chaque fois ?

Merci.
0
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
2 nov. 2009 à 13:25
Salut

Oui bien sur que tu peux initialiser tous tes boutons et étiquette depuis un boucle.
Faut que tu te stocke tous les nom d'occurrences dans un tableau, par exemple, puis tu parcours ce tableau. Tu peux aussi changer tes noms de bouton, etiquette1_btn, etiquette2_btn, avoir tes etiquette1_mc, etiquette2_mc en correspondance, faire un boucle sur le nombre de bouton sur ta scene... enfin y'a plein de solutions...
et mm si je sais que ca parrait plus dur, tu devrait te mettre a l'AS3 !
++

Flash sans Limites
_Benjy
Amalgam Production
0
anthon12 Messages postés 4 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 2 novembre 2009
2 nov. 2009 à 13:32
ok je vais m'essayer à la boucle. Merci pour ton coup de main et bonne continuation.

anthon12
0
Rejoignez-nous