Forums Développement Multimédia

Aller au contenu

Changer couleur d'un clip dans une autre séquence

as3 flash couleur CODE Actionscript

7 réponses à ce sujet

#1 chany167

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 27 June 2013 - 18:16 PM

Bonjour à tous !
J'ai un gros problème, je travaille sur un projet en flash.
Pour cela j'ai du créer plusieurs séquences.
Le but est lorsque je clique sur un bouton, je vais sur une autre séquence.
(Ca je sais faire)
MAIS, j'aimerai que selon le bouton que j'actionne un clip de la nouvelle séquence change de couleur.
Je n'arrive à changer de couleur un clip que s'il est dans la frame jouée, mais pas en avance...
Quelqu'un a-t-il une idée ?
MERCI !

#2 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 June 2013 - 10:45 AM

Bonjour,

Pourrais-tu nous en dire plus sur la structure de ton FLA ?
Qu'appelles-tu une séquence (je ne connais pas trop l'environnement de Flash IDE) ?
As-tu du code placé ? Sur plusieurs frames ? Au sein de tes clips en bibliothèque ?

Je pense qu'il faut simplement écouter le clic sur ton bouton auprès de la "séquence" concernée ... mais tes réponses pourraient fortement modifier cet avis ...
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#3 chany167

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 28 June 2013 - 10:56 AM

Merci pour ta réponse !
Une séquence est une scène. Dans chaque scène il y a plusieurs frame.
Mon architecture est la suivante :
- une Séquence Index avec une Frame
- Plusieurs Séquences différentes, où pointent la séquence Index :
Sequence A, Sequence B, Sequence C
Dans chacune de ces Séquences, il y a plusieurs frames.
Frame A1, Frame A2, Frame A3, Frame B1, Frame B2, Frame B3, etc...
Et enfin, une Séquence Finale avec plusieurs clips (qui sont en fait des rectangles de couleur)
Donc dans Séquence Finale, on a A1_mc, A2_mc, A3_mc, B1_mc, B2_mc...

Jaimerai que lorsqu'on clique sur un bouton de la frame A1, on arrive à Séquence Finale et que A1_mc change de couleur, lorsque l'on clique sur un bouton de la frame A2, A2_mc change de couleur, etc...

J'ai essayé avec de mettre dans la frame A1 :
import flash.geom.ColorTransform;

var newColorTransform:ColorTransform = A1_mc.transform.colorTransform;
newColorTransform.color = 0x336699;

A1_mc.transform.colorTransform=newColorTransform;

Mais A1_mc ne change pas de couleur dans la séquence finale. La transformation de la couleur n'intervient que si le clip A1_mc est DANS la frame du bouton....

Voilou...

#4 chany167

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 28 June 2013 - 10:57 AM

Ah et petit détail, j'ai essayé de mettre A1_mc dans la Frame A1, en mettant un Alpha à 0%, qui passerait à 100% dans le Séquence Finale, mais ca ne marche pas non plus....

#5 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 June 2013 - 11:01 AM

Désolé, je n'ai pas assez de connaissance dans l'IDE de Flash pour te répondre ... Sauf à te dire de tout reprendre en code en ayant qu'une séquence avec 1 frame et tous tes objets en bibliothèque et à gérer tout cela en code ... mais je ne pense pas que cela te convienne :)

Une autre personne passe par là ?
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#6 chany167

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 28 June 2013 - 11:06 AM

Merci quand même :o)
Bien sûr, si je mets tout dans une seule séquence ça change tout, et beaucoup disent qu'il ne faut pas utiliser les séquences en Flash.
Mais (evidemment), dans mon cas, ce n'est pas possible. J'ai 50 variables par Frame et 10 Frame par Séquence, avec des interpolatiosn et tout le bazar. Si je mets tout au même endroit, je crois que mon ordi va exploser. En plus en terme de gestion, c'est juste lunaire...

#7 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 June 2013 - 12:04 PM

Voir le messagechany167, le 28 June 2013 - 11:06 AM, dit :

Mais (evidemment), dans mon cas, ce n'est pas possible. J'ai 50 variables par Frame et 10 Frame par Séquence, avec des interpolatiosn et tout le bazar. Si je mets tout au même endroit, je crois que mon ordi va exploser. En plus en terme de gestion, c'est juste lunaire...

Mais non ... c'est juste une façon différente de voir ta programmation ... plus dynamique et plus orientée objet ...
Je comprends que cela ne t'intéresse pas, mais considères juste que des applications beaucoup plus complexes que celle que tu évoques sont gérées sans l'IDE et que le résultat est tout à fait époustouflant !

J'espère que quelqu'un passera et pourra te répondre.
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#8 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6993 messages

Posté 28 June 2013 - 16:56 PM

Salut,

Et une fois de plus on arrive au point charnière qui pose problème avec Flash ;-)

Je m'explique, Flash est un IDE fait pour faire de l'animation, pas des sites, des programmes ou des jeux.
Il est capable d'en faire mais il n'est pas prévu pour ça à la base, l'IDE présente donc des fonctionalités qui sont prévues pour faire de l'animation et uniquement de l'animation. C'est pour ça qu'on dispose d'une scène, d'une timeline, et de séquences, un peu comme on pourrait l'avoir sur un logiciel de montage comme Première, or avec Première on ne peut pas faire un site Web ou un Jeu, on fait juste de la vidéo.

Flash à su se doter d'un langage très évolué, l'Actionscript, et beaucoup de ceux qui ont découvert la sphére Flash (qui comprend IDE et langage) l'on fait par l'intermédiaire de Flash (IDE), ce qui entraîne le genre de problème que tu rencontre car tu essayes de faire un site en utilisant les outils d'animation, et d'utiliser du code pour l'interactivité d'une manière qui ne se marie pas bien avec la structure d'une animation.

Les codeurs ont vite fait d'oublier l'IDE et de n'utiliser que le langage qui permet de tout faire sans timeline ect....
Les animateurs ne touchent presque jamais au code et font tout à l'IDE grâce aux outils mis à leur dispositions.

Entre les deux il y a tout un tas de gens qui apprennent sur le tas, d'abord avec l'IDE puis se mettent un peu au code et tentent de mixer les deux, et là c'est la cata...... c'est un moment charnière que beaucoup d'entre nous on connu au fil de leur évolution, la seule solution est de repenser la manière dont tu crée les choses et t'affranchir autant que possible de l'IDE quand tu le peux, c'est à dire ne plus l'utiliser que pour sa bibliothèque bien pratique et ses quelques outils de dessins qui facilitent la tâche, et oublier totalement la timeline et surtout les séquences qui sont une horreur à gérer en code.

Ce qu'il faut comprendre c'est que la timeline n'est qu'un raccourci pratique qui fait à ta place des choses que tu peux faire avec le code, les séquences c'est pareil, les clips pareil, les champs textes pareil, etc.....

Si tu as 50 variables par frames, 10 frames par séquence, ect..... ça doit te paraitre ingérable de tout faire en code, alors qu'en fait c'est l'iverse qui se produit, à faire les choses à la timeline et en séquences tu alourdis considérablement les processus et te complique énormément la vie, tes 50 variables par frame se résumeraient à 50 variables pour toutes les "frames" de toutes les "séquences", tes 10 frames par séquences se résumeraient à une petite fonction valable pour toutes les "séquences" qui pourraient avoir des paramètres différents, etc.... en gros ton programme pourrait tenir en une petite centaine de ligne et quelques objets dans la bibliothèque et pas des centaines de frames et de variables de partout.

Mais pour cela il faut changer sa manière de penser et de concevoir, sans pour autant entrer dans la POO ou autres choses barbares.

A ce stade difficile de te guider, je te propose d'envoyer un FLA simplifié de ta structure actuelle (avec juste des carrés de couleur etc...), et je te ferai un exemple qui te donnera le même résultat en code. Ensuite ce sera à toi de voir si c'est finalement plus simple ou pas, mais tant que tu restera avec une structure par séquences tu va te prendre la tête si tu veux envoyer des informations d'une séquence à une autre.

Pour faire simple, quand tu crée une séquence et que tu passe d'une séquence à l'autre, Flash va détruire tout ce qu'il y avait dans la première séquence avant d'afficher ce qu'il y a sur la suivante, quand on fait une animation ou un dessin animé ça ne pose pas de problème car il n'y a pas d'interactivité poussée, c'est même bien pratique de disposer de séquences pour bien séparer chaque moment de l'animation. Mais là tu cherches à faire quelque chose qui demande de conserver des infos au fil de la progression, donc pour passer des infos de l'une à l'autre des séquences il te faut des variables globales (qui existent même en dehors des séquences) qui vont stocker ces infos et les transmettre à la nouvelle séquence. Puis il faudra lire ces infos pour modifier la séquence voulue une fois qu'elle sera affichée, du coup ça va te rajouter des variables et tu sera de toute façon obligé de penser d'une manière globale et pas par petits bouts de séquences, bref c'est bien plus compliqué et au final te fait perdre du temps.



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

FFP