Aller au contenu


Question qui m'ANIME :p


  • Vous ne pouvez pas répondre à ce sujet
28 réponses à ce sujet

#1 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 19 décembre 2011 - 08:25

Bonjour à tous,

Je fais appel a vos connaissances.
Débutant en Flash et encore plus en AS3 !!!!

J'ai une petite question :

Je compte faire un menu animé "Clip" avec des boutons codés de cette manière :


// Bouton 1
bt1.addEventListener(MouseEvent.CLICK,clicbt1);
function clicbt1(me:MouseEvent):void{
        gotoAndPlay(10)
        trace("clic bt1");
}
 


il y a plusieurs boutons dans mon "Clip".
Cependant j'aimerais que lors du clic sur un des boutons, l'animation du "clip se déroule"
et la tête de lecture bouge sur la Main frame en même temps.

Est-il possible de mettre gotoAndPlay(10) dans mon clip et ajouter un autre gotoAndPlay(scene1,10)??
Est ce que quelqu'un peut m’aiguiller?

Merci d'avance,
Bonne journée.

#2 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 19 décembre 2011 - 02:09

Pas de réponse? Plz

J'ai fais différents tests mais non concluants ...

#3 dcz.switcher

  • Moderateur
  • 2 075 messages
  • Logiciels utilisés:sublime text 2, flash builder, inkscape

Posté 19 décembre 2011 - 02:24

Salut,

Pour arriver à tes fins, il faut que tu comprennes comment agir, depuis l'intérieur de la fonction clicbt1, avec : le scénario principal et ton bouton

Pour cela, je t'invite à tester le code suivant :


// Bouton 1
bt1.addEventListener(MouseEvent.CLICK,clicbt1);

function clicbt1(me:MouseEvent):void{
        trace(this) ;
        trace(e.target) ;
        trace(e.target.name) ;
}
 


#4 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 19 décembre 2011 - 03:08

Hello,

Merci de ta réponse, je viens de faire une recherche ciblée sur le target.
Et d'après ce que je comprends, le target permet a un objet de subir une fonction et le currentTarger applique la fonction a un ensemble "d'objets" qui sont dans un clip?

Cependant je ne comprends pas le e.target et le e.target.name ...
Peux-tu m'éclairer sur ce point?


Merci d'avance ;)

#5 dldler

  • Moderateur
  • 3 082 messages
  • Logiciels utilisés:Creative Suite

Posté 19 décembre 2011 - 03:21

C'est à cause d'une petite erreur…

Ce ne devrait pas être e, mais me.
Et pourquoi me ?
Parce que c'est le nom que l'on a choisit comme paramètre entrant à la fonction, dans cette ligne ci :
function clicbt1(me:MouseEvent):void{

On peut bien sûr mettre le nom que l'on veut, souvent e pour un Event, me pour un MouseEvent, ou en toutes lettres mais avec l'initiale en minuscule : event, mouseEvent.

Du coup, quand on écrit ;
me.target
…on est en train de cibler la propriété target de l'événement me reçu en paramètre.
Idem pour me.target.name : on cible la propriété name de la propriété target de l'événement.


Un petit flou dans ta façon de redire la différence entre Target et currentTarget…

currentTarget, c'est l'objet sur lequel on a posé l'écouteur.
Tandis que target, c'est l'objet qui a réellement déclenché l'événement.
De façon imagée : current target c'est le rapporteur qui nous dit "Chef, chef, j'ai entendu 'target' crier",

Ceci permet de travailler sur un clip qui contiendrait d'autres clips enfants.
Imagine un movieCLip qui servirait de menu, contenant 5 boutons.
Le mennu en temps que tel ne peut pas être cliqué, il n'a pas d'existence visuelle à lui. On clic plutôt sur un bouton du menu.
Si on pose l'écouteur sur le menu, l'événement d'un clic sur un bouton sera entendu. La propriété target permettra de retrouver le bouton cliqué, la propriété currentTarget sera le menu lui-même.

Evidemment, dans un cas simple, d'un bouton par exemple, ne contenant rien d'autre, target et currentTarget nous renverront tous les 2 le bouton. Ce phénomène est à l'origine du vieil addage "C'est celui qui le dit qui y est". (source non officielle à ne pas recopier dans wikipedia) ;-)

#6 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 19 décembre 2011 - 03:48

Merci pour cette mise au point ;)

Mais j'ai l'impression que cette "function" ne convient pas dans mon cas.

Sur ma "Scène, j'ai crée un "clip1" dans lequel il y a plusieurs boutons. (comme dans ton exemple)

btn_1 (avec un MouseEvent) + gotoAndPlay (2)
btn_2 (avec un MouseEvent) + gotoAndPlay (10)
btn_3 (avec un MouseEvent) + gotoAndPlay (30)

Quand on clic sur un bouton (btn_1, btn_2, btn_2)le clip1 s'anime, cependant je veux qu'en même temps ma scène principale s'anime aussi... (du genre quand clic sur btn_2, une fois gotoAndPlay(10) effectué, Mainframe gotoAndPlay (2)

Je sais pas si je suis précis dans mes explications?
Bref je but sur un truc qui, a mon avis n'est pas bien compliqué !!!!! :)

#7 dldler

  • Moderateur
  • 3 082 messages
  • Logiciels utilisés:Creative Suite

Posté 19 décembre 2011 - 04:11

Tu as raison, ceci n'est pas clair :

Citation

genre quand clic sur btn_2, une fois gotoAndPlay(10) effectué, Mainframe gotoAndPlay (2)
:)

Mais j'espère que j'ai quand même compris globalement ce que tu veux faire.
En fait, tu as besoin d'infos supplémentaires lorsque tu cliques sur un bouton.


Si tes boutons sont des "Boutons" flash, ça va être un peu difficile.
Si tes boutons, sont comme je le pense, des MovieClip, ça va être beaucoup Plus simple : car les MovieClip sont dynamiques, ce qui veut dire que l'on peut y ajouter des propriétés, lors de l'exécution.

Tu as donc besoin de 2 infos en accompagnement de chaque bouton. Le goto du bouton, le goto du scénario.

L'idée c'est de préparer le terrain et de stocker ces infos dans les boutons.

Exemple :

btn_1.gotoDuBouton=10;
btn_1.gotoDuScenario=20;

btn_2.gotoDuBouton=10;
btn_2.gotoDuScenario=30;

btn_3.gotoDuBouton=10;
btn_3.gotoDuScenario=40;

// etc
 

Les infos sont maintenant bien structurées.
Il faudrait aussi, à mon avis, que tes boutons soient dans un Clip, eux aussi.
Disons, un clip que tu aurais nommé menu.

A partir de là, on est dans la configuration classique décrite plus haut.
On pose l'écouteur sur le menu, la fonction associée retrouvera le bouton cliqué avec target. Et dans le target, elle trouvera les infos gotoDuBouton et gotoDuScenario… Ça devient donc très simple, quelque soit le nombre de boutons.


menu.btn_1.gotoDuBouton=10;
menu.btn_1.gotoDuScenario=20;

menu.btn_2.gotoDuBouton=10;
menu.btn_2.gotoDuScenario=30;

menu.btn_3.gotoDuBouton=10;
menu.btn_3.gotoDuScenario=40;

menu.addEventListener(MouseEvent.CLICK,clickSurUnBouton);

function clickSurUnBouton(event:MouseEvent):void {
   var leBouton:MovieClip=MovieClip(event.target); // Retrouvons le bouton cliqué
   // on est sûr que leBouton possède les variables "gotoDuBouton" et "gotoDuscenario"
   leBouton.gotoAndPlay(leBouton.gotoDuBouton); // On fait jouer le bouton selon la variable
   this.gotoAndPlay(leBouton.gotoDuScenario); // On joue le scénario selon la variable dédiée
}

 


Au delà, si tu veux que l'animation du bouton soit terminée avant de lancer celle du scenario, ça va être plus compliqué… mais faisable. ll faudra juste que tu apprennes à émettre des événements personnalisés.

#8 dldler

  • Moderateur
  • 3 082 messages
  • Logiciels utilisés:Creative Suite

Posté 19 décembre 2011 - 04:17

Dldler, le 19 décembre 2011 - 04:11 , dit :


btn_1.gotoDuBouton=10;
btn_1.gotoDuScenario=20;

btn_2.gotoDuBouton=10;
btn_2.gotoDuScenario=30;

btn_3.gotoDuBouton=10;
btn_3.gotoDuScenario=40;

// etc
 


Le petit trruc en plus qui n'a rien à voir…
… quand je fais (ou faisait) ce genre de choses, j'écrivais une petite fonction juste pour ça.
Comme ceci :

function prepareBouton(unBouton:MovieClip,go_1:int,go_2:int):void {
   unBouton.gotoDuBouton=go_1;
  unBouton.gotoDuBouton=go_2;
}

// Ce qui me simplifie l'écriture pour tous les boutons :
prepareBouton(btn_1,10,10);
prepareBouton(btn_2,10,20);
prepareBouton(btn_3,10,30);
//etc
 


#9 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 19 décembre 2011 - 04:43

Merci de cette réponse,

Je crois que tu as bien déchiffré ma requête :P
Je vais jeter un œil sur tous ça et faire des tests !!

A mon avis c'est sur la bonne voie :)

Merci encore

#10 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 19 décembre 2011 - 04:55

Mes boutons sont du texte convertis en symbole "bouton"... c'est grave docteur?
Ou je dois les repasser en "Clip"??

#11 dldler

  • Moderateur
  • 3 082 messages
  • Logiciels utilisés:Creative Suite

Posté 19 décembre 2011 - 08:18

???

Si tes boutons sont de type Bouton, je ne vois pas comment tu pourrais leur appliquer un gotoAndPlay(10); qu iest une instruction réservée aux MovieClip, les seuls à posseder un Scenario.

… il y a contradiction dans l'énoncé du problème.

#12 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 20 décembre 2011 - 08:08

Dldler, le 19 décembre 2011 - 08:18 , dit :

???

Si tes boutons sont de type Bouton, je ne vois pas comment tu pourrais leur appliquer un gotoAndPlay(10); qu iest une instruction réservée aux MovieClip, les seuls à posseder un Scenario.

… il y a contradiction dans l'énoncé du problème.

Mes boutons sont de type "bouton" mais le gotoAndPlay (10); se passe sur le clip menu quand on clic sur le bouton.
Je vais faire un petit exemple de ce que je veux faire :)

#13 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 20 décembre 2011 - 08:39

Voici mon petit test non concluant :P

Fichier(s) joint(s)



#14 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 20 décembre 2011 - 03:24

UP plz

#15 lilive

  • Moderateur
  • 3 050 messages

Posté 21 décembre 2011 - 09:38

Bonsoir,
J'ai un peu regardé, mais pas de solution rapide à te proposer.
Alors pourquoi réponds-je? Pour te signaler au passage 2 tutoriels:
http://ressources.me...ddeventlistener
http://ressources.me.../animation/menu
Je pense que si tu prends le temps de les suivre et les faire, tu seras plus à même de t'en sortir sur ton problème.

#16 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 22 décembre 2011 - 09:27

Merci de ta réponse,
J'ai lu les tutos, dans le premier les dialogues se font sur la scène
et dans le deuxième sous forme de tableau...

Je n'arrive pas a en tirer les informations requises pour mon site :/
Je désespère vraiment :(

Je joins mon fla, où il y a le menu créer sous forme de clip qui contient des boutons,
et un clip sur la frame 2 de ma scène qui doit être lu quand on clic sur le bouton "qui sommes nous?"

Si quelqu'un peut y regarder et me dire si je procède de la bonne manière pour mon menu et le déroulement?


Merci d'avance,
H.I.M

Fichier(s) joint(s)



#17 Nataly

  • Moderateur
  • 4 641 messages

Posté 22 décembre 2011 - 12:52

H.I.M, le 22 décembre 2011 - 09:27 , dit :

J'ai lu les tutos, dans le premier les dialogues se font sur la scène
et dans le deuxième sous forme de tableau...


juste pour ma culture : dialogue, ça veut dire quoi pour toi ?
Le savoir est le seul bien qui s'accroit quand on le partage

#18 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 22 décembre 2011 - 01:09

Nataly, le 22 décembre 2011 - 12:52 , dit :

juste pour ma culture : dialogue, ça veut dire quoi pour toi ?

"Pour ta culture"?? je sens un soupçon d'ironie là dessous... :)
C'est peut être pas le bon "terme" !
Mais j'entends par là, que les boutons et les clips dialoguent entre eux sur la scène principale.

Modifié par H.I.M, 22 décembre 2011 - 01:11 .


#19 badwolf

    Ceinture Noire

  • Members
  • 351 messages
  • Logiciels utilisés:Flash, Flex

Posté 22 décembre 2011 - 01:12

H.I.M, le 22 décembre 2011 - 01:09 , dit :

"Pour ta culture"?? je sens un soupçon d'ironie là dessous... :)
C'est peut être pas le bon "terme" !
Mais j'entends par là, que les boutons et les clips dialoguent entre eux sur la scène principale.
en gros des évènements... :mrgreen:

Valar morghulis

#20 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 22 décembre 2011 - 01:18

Badwolf, le 22 décembre 2011 - 01:12 , dit :

en gros des évènements... :mrgreen:

Exact mais sur la même scène,
hors dans mon cas, ce sont des boutons dans un clips qui doivent "DIALOGUER" :P avec d'autres clips sur la scène principale. et bon dieux que je m'arrache les cheveux :(

Modifié par H.I.M, 22 décembre 2011 - 01:19 .


#21 badwolf

    Ceinture Noire

  • Members
  • 351 messages
  • Logiciels utilisés:Flash, Flex

Posté 22 décembre 2011 - 01:23

H.I.M, le 22 décembre 2011 - 01:18 , dit :

Exact mais sur la même scène,
hors dans mon cas, ce sont des boutons dans un clips qui doivent "DIALOGUER" :P avec d'autres clips sur la scène principale. et bon dieux que je m'arrache les cheveux :(
as tu essayé avec des événements personnalisés ???

en gros dans tes clips, au clic de bouton, tu "dispatch" un événement sur ta scène principale et sur ta scène principale tu crées un "listener" de ce mêmes événements personnalisés

Valar morghulis

#22 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 22 décembre 2011 - 01:35

Badwolf, le 22 décembre 2011 - 01:23 , dit :

as tu essayé avec des événements personnalisés ???

en gros dans tes clips, au clic de bouton, tu "dispatch" un événement sur ta scène principale et sur ta scène principale tu crées un "listener" de ce mêmes événements personnalisés


Je ne connais pas les function "dispatch" et "listener" :/
Je viens de regarder sur mediabox si il y avait un tuto mais "No find"

#23 Nataly

  • Moderateur
  • 4 641 messages

Posté 22 décembre 2011 - 02:47

H.I.M, le 22 décembre 2011 - 01:09 , dit :

"Pour ta culture"?? je sens un soupçon d'ironie là dessous... :)

:), ça aurait pu : j'ai le (mauvais :roll:) fond moqueur, mais en l'espèce non. Il se trouve que ce qui se conçoit bien, gnagna… et que via la façon d'énoncer on peut quelque fois déduire l'origine de la confusion… Or là, je déduisais rien de rien ;)

Citation

Mais j'entends par là, que les boutons et les clips dialoguent entre eux sur la scène principale.

Et même encore, j'ai du mal. Tu veux dire depuis la scène principale, j'imagine… ou plus précisément : grâce à du code écrit "sur" une image du scénario principal (ce n'est pas tout à fait la même chose que la scène - illustré ici -).

Et alors ? où est le problème ?

Citation

dans mon cas, ce sont des boutons dans un clips qui doivent "DIALOGUER" :P avec d'autres clips sur la scène principale.

Tu dois intercepter le clic (ou d'autres événements) diffusé(s) par certains boutons situés dans des clips afin d'agir sur d'autres clips situés sur le scénario principal ?

et ben ?

tu "cibles" (adresses, on dit) le bouton que tu veux depuis le scénario racine pour lui associer un écouteur

leClip.unSousClip.tonBoutonToutAuFond.addEventListener (…,laFonctionDeRappel);

toujours même image la fonction de rappel considérée :

function laFonctionDeRappel(e:Event){
    unAutreClip.leSousClipQuiTeSied.stop()// ou la méthode que tu veux
}


Je n'ai pas lu le début de la conversation :oops: me suis juste pointée pour améliorer ou enrichir les tutos que tu as consultés (d'où ma question). Je ne sais donc pas si ça résout ton problème, mais une chose de sûre :

Citation

Débutant en Flash et encore plus en AS3 !!!!

Je compte faire un menu animé "Clip" avec des boutons codés de cette manière :

Débuter implique apprendre, et il est des choses qui ne peuvent se comprendre que si on débute par le début (c'est écrit dedans :mrgreen: )
Faire du menu, ce n'est pas vraiment la première étape :?

mais si tu commences par comprendre la gestion des événements (Lilive t'a donné le lien), tu pourras suivre le tuto menu.
Quand tu l'auras compris, tu pourras sans doute l'appliquer à ta préoccupation particulière.
S'il y a des choses pas claires, qui manquent d'explications en amont, n'hésite pas à le signifier sur le sujet associé :)

Et tu pourras sans doute échapper à l'événement perso (c'est en fait bien rare qu'on en ait besoin quand on débute).

Si c'est incontournable, un chapitre de POO par la pratique traite le thème. Mais c'est au sein d'une progression rigoureuse, pas dit que ce soit compréhensible si tu le choppes dans le vide :?


Oilou, souhaitant que ça t'aide… :)
Le savoir est le seul bien qui s'accroit quand on le partage

#24 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 22 décembre 2011 - 03:26

Nataly, le 22 décembre 2011 - 02:47 , dit :


Tu dois intercepter le clic (ou d'autres événements) diffusé(s) par certains boutons situés dans des clips afin d'agir sur d'autres clips situés sur le scénario principal ?

et ben ?

tu "cibles" (adresses, on dit) le bouton que tu veux depuis le scénario racine pour lui associer un écouteur

leClip.unSousClip.tonBoutonToutAuFond.addEventListener (…,laFonctionDeRappel);

toujours même image la fonction de rappel considérée :

function laFonctionDeRappel(e:Event){
    unAutreClip.leSousClipQuiTeSied.stop()// ou la méthode que tu veux
}


Tout d'abord merci pour ton intervention et tes explications,
Je viens de faire un test avec le code que tu as posté.


// Dans le scenario, je cible mon "btn_qfn" qui se situe dans le clip "menu" avec son Mouse Event.
menu.btn_qfn.addEventListener (MouseEvent,laFonctionDeRappel);

// Ici j'aimerais que la tête de lecture se déplace sur la frame (2) du scenario quand l'on clic sur mon bouton btn_qfn qui se situe toujours dans le menu
function laFonctionDeRappel(e:Event){
    this.gotoAndPlay(2)
}
 

Ca ne fonctionne pas :cry:

De plus j'ai un vilain pas beau message d'erreur

TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
        at index_fla::MainTimeline/frame2()
        at flash.display::Sprite/constructChildren()
        at flash.display::Sprite()
        at flash.display::MovieClip()
        at index_fla::clip_menu_1()
 


#25 lilive

  • Moderateur
  • 3 050 messages

Posté 22 décembre 2011 - 06:49

Nataly, le 22 décembre 2011 - 02:47 , dit :

mais si tu commences par comprendre la gestion des événements (Lilive t'a donné le lien), tu pourras suivre le tuto menu.
Quand tu l'auras compris, tu pourras sans doute l'appliquer à ta préoccupation particulière.
Voilà, c'est bien ce que je voulais dire:

lilive, le 21 décembre 2011 - 09:38 , dit :

http://ressources.me...ddeventlistener
http://ressources.me.../animation/menu
Je pense que si tu prends le temps de les suivre et les faire, tu seras plus à même de t'en sortir sur ton problème.
Ce qui est différent de:

H.I.M, le 22 décembre 2011 - 09:27 , dit :

J'ai lu les tutos [...] Je n'arrive pas a en tirer les informations requises pour mon site :/
car suivre, refaire, t'approprier les techniques de ces tutos (ou au moins du premier) pourrait te prendre facile plusieurs heures, éventuellement réparties sur plusieurs jours le temps que ça se mette en place dans ta tête.


Donc si tu n'arrives pas à résoudre ce problème en l'attaquant de front, tu peux prendre le temps de l'apprentissage et y revenir par la suite. Tu verras tu sera plus à l'aise, et pourra mieux dialoguer avec ceux qui essaient de t'aider.
Car si ton niveau de connaissance et d'expérience en actionscript est insuffisant pour résoudre ton problème, c'est dur pour toi d'y arriver, bien sûr, mais c'est aussi plus difficile de t'aider. Je te souhaite que quelqu'un me fasse mentir sur ce dernier point ;)

#26 Nataly

  • Moderateur
  • 4 641 messages

Posté 22 décembre 2011 - 09:00

lilive, le 22 décembre 2011 - 06:49 , dit :

Donc si tu n'arrives pas à résoudre ce problème en l'attaquant de front, tu peux prendre le temps de l'apprentissage et y revenir par la suite.

C'est aussi la seule technique que je connaisse :?

si tu veux apprendre, ben faut t'y mettre, si tu veux que ça marche… alors, c'est une autre démarche que je ne saurais accompagner ;)

allez un dernier fla pour la route :)

Fichier(s) joint(s)

  • Fichier joint  jeter.fla   65,5 Ko   2 téléchargement(s)

Le savoir est le seul bien qui s'accroit quand on le partage

#27 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 26 décembre 2011 - 08:12

Merci pour vos réponses et conseils que je vais appliquer ;)
En ce qui concerne le dernier .fla de Nataly, c'est exactement ce que je veux faire.
Dans mon cas cela ne fonctionne peut être pas car dans mon clip "menu" les bouton sont de type "bouton"?

Bonne fêtes de fin d’années,
H.I.M

#28 Nataly

  • Moderateur
  • 4 641 messages

Posté 26 décembre 2011 - 09:44

H.I.M, le 26 décembre 2011 - 08:12 , dit :

cela ne fonctionne peut être pas car dans mon clip "menu" les bouton sont de type "bouton"?

Salut lui*

Nan, ça change rien de rien. d'ailleurs vérifie : change le clip en bouton ;)

Bonne entre-deux-fêtes :)




* him. Oui… bon… :P
Le savoir est le seul bien qui s'accroit quand on le partage

#29 tailslide_59

    Ceinture Orange

  • Members
  • 46 messages

Posté 26 décembre 2011 - 01:05

Nataly, le 26 décembre 2011 - 09:44 , dit :

Salut lui*

Nan, ça change rien de rien. d'ailleurs vérifie : change le clip en bouton ;)

Bonne entre-deux-fêtes :)




* him. Oui… bon… :P


Hello ;)

Oui je viens de tester avec le clip en bouton, it's alive !!!
Par contre ça fonctionne pas quand je transpose la technique sur mon fla :(
Mon clip menu est fait d'interpolations... ceci explique t'il cela?

Merci

Modifié par H.I.M, 26 décembre 2011 - 01:06 .






1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS - Tel. 0826 466 613 - Fax. 01 72 70 31 38

FFP