cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011
-
28 juin 2009 à 09:04
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
29 juin 2009 à 19:58
Bonjours à tous,
J'ai un petit problème, je travail sur flash CS3 et en AS3. je ne trouve pas la fonction qui peu me permettre de modifier "la teinte" d'un objet en AS3. alors j'insiste sur la teinte car ce n'est pas une modification en RGB que je cherche mais bien de teinte comme on peut le faire depuis le filtre - régler la couleur. Je sais que en AS2 on le faisait grâce à la propriété filter.hue.
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 28 juin 2009 à 17:54
Salut,
Ben à part à l'aide de la classe ColorMatrixFilter , je vois pas ... ou alors pour certains composants Flash dans ce cas je crois que tu peux utiliser Color.setTeint() ...
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 18:00
malheureusement ces deux solutions font appel à un code RGB et disons ça me modifie également mes teinte en noir.
Hors lors d'une modification de teinte via "régler la couleur", le noir garde sa teinte.
je reste bloqué
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 19:34
pourtant en AS2 filter.hue permet de modifier la couleur grâce à une valeur comprise en 180 et -180 comme le propose le filtre régler la couleur et impossible de le trouver en AS3 ou alors je m'y prend mal.
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 19:52
Oui le lien je l'avait déjà trouver mais il modifie également les valeurs RGB et comme tu peu le voir pas forcement de la façon la plus simple. De plus si ce code est utiliser pour 2 occurences sur la scène l'animation est ralenti.
Sinon que veut tu dire par décalage du spectre de couleur? comment je m'y prend?
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 28 juin 2009 à 19:57
Tu ne peux pas "t'y prendre" mais le spectre de couleurs est définis sur 360°, allant du rouge au rouge ...
Si tu fais un peu de photoshop, tu verras lors des remplacements de couleurs.
Cependant, n'ayant jamais eut besoin d'utiliser cette fonction en AS2, je ne saurais t'aider en as3. Mais beaucoup de fonctions as2 ont été supprimées par d'autres car il y avait redondances ou moyen plus efficace de le faire.
Certaines autres ont été tout simplement supprimées.
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 20:11
Graphiste je connait très bien les spectres de couleurs et si je ne me trompe il existe plusieur sorte de spectre RVB, CMJN, et TSL
c'est ce dernier qui m' intéresse étant donné que le T correspond à la teinte
Je pensais que tu avait peu être une solution à mon problème avec cette histoire de spectre enfin tant pis si personne n'a de solution je passerait à flash CS4 qui lui le permet.
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 20:42
Ci-joint la page de l'aide adobe qui parle de modification de teinte apparemment ( peu être je ne sais pas l'utiliser )
malheureusement ma recherche date de vendredi et je ne trouve plus la page qui parlait de la possibilité de le faire grâce à FlashPlayer 10
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 28 juin 2009 à 20:59
Dans l'exemple que tu nous as indiqué, il s'agit de la classe fl.motion et non d'une simple transformation de couleur sur un élément graphique.
Si tu lis bien le code et que tu reprend le chapitre traité depuis le début, tu verras que c'est dans un cas super précis.
Donc CS4 ne peut pas faire ce que tu demandes simplement ...
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 21:47
je sais que le site donné ne donne pas forcement ce que je voulait te montrer mais je t assure que il existe une fonction disponible avec le flashplayer10 pour modifier la teinte qui n'est pas sur le flashplayer9.
Malheureusement je n'ai pas le temps de rechercher cette page mais dans les deux jours je te retrouve ce lien. Promis.
Sinon ayant posté sur un autre forum on m'a donné une solution qui me plait bien et que je vais pouvoir réutiliser
je cite starmonkey_811 de flash.mediabox.fr :
"salut
le truc pour le faire en code serait d'utiliser ColorMatrixFilter, c'est le filtre que flash applique pour régler la couleur.
par contre pour le configurer ce n'est pas forcément intuitif
si
la teinte n'est pas trop amenée à changer tu peux aller dans flash,
appliquer le filtre à un clip et dans le code faire un
trace(monClip.filters[0].matrix); ce qui indiquera les réglages à
utiliser
si tu veux faire quelquechose de plus dynamique une petite recherche sur google à propos de ce filtre te donnera pas mal d'infos
sinon
la classe ColorTransform peut être pas mal et plus simple. Dans flash
si tu changes la couleur d'un clip dans ses propriétés (sans passer par
les filtres) et tu pourras voir les valeurs des paramètres dans
"avancés""
Voilà le trace me donne les réglages pour avoir parfaitement ce que je souhaite.
Je te retrouve le lien pour le player 10 dans les jours qui arrive
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 28 juin 2009 à 22:31
Non c'est le trace qui m'interesse
car il me donne les valeurs exact que je n'ai plus que à reporter en RGB ce qui me donne l'équivalent de la teinte enfin je ne sais pas si je suis très clair.
Mais fait un test avec un filtre sur un Clip et le trace y te donne des valeur que je n'ai plus qu'à reporter grâce à MotionBase par exemple qui utilise des valeurs similaires
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 28 juin 2009 à 23:30
Lol ... non mais bon ... le trace() est une instruction qui te permet de vérifier le fonctionnement de ton code et le cas échéant te retourner le valeurs associées dans le panneau de sortie ... des trace() tu peux en placer tout le long de ton code si tu veux .... ça change pas le fait que si tu veux jouer sur la teinte la meilleure méthode en AS3 et d'utiliser la classe ColorMatrixFilter comme te propose la réponse que tu nous cites ...
On tourne un peu en rond là .
cyan59
Messages postés44Date d'inscriptionmardi 19 décembre 2000StatutMembreDernière intervention28 mai 2011 29 juin 2009 à 13:16
La meilleure méthode pour teinter un clip en AS3 avec une CS3 est effectivement ColorMatrixFilter. Cependant, quelque chose me choque, c'est que les librairies de base dans la CS3 sont moins fournies que celles de la CS4, et pas seulement en ce qui concerne les classes permettant de faire de la 3D.
Par exemple, si vous consultez la documentation fournie dans la CS3 pour la classe Motion, on voit que celle-ci hérite directement de Object, l'élément de plus haut niveau. Alors que la documentation en ligne (celle de la CS4, donc), nous indique que Motion hérite d'abord de MotionBase et que cette dernière hérite de Object. S'ajoutent alors un certain nombre de fonctionnalités et de méthodes, notamment une méthode initFilters() permettant de faire appel à tous les filtres disponibles dans l'interface, ce qui n'était pas possible dans la CS3.
De même, une nouvelle classe fait son apparition dans la CS4, il s'agit de la classe AjustColor, qui permet d'effectuer une teinte sur un élément directement en utilisant la propriété hue, modifiable grâce à un setter (cf. doc : http://help.adobe.com/fr_FR/AS3LCR/Flash_10.0/fl/motion/AdjustColor.html#hue).
Si vous faites bien attention, la documentation mentionne : Versions du moteur d'exécution: AIR 1.0 Flash Player 9. Alors que l'URL du lien mentionne "Flash_10.0". Savez-vous s'il est possible d'importer les nouveaux packages, ou tout du moins les nouvelles classes proposées par la CS4 (player 10) dans une CS3 (player 9) ?
J'en profite pour faire une petite parenthèse, certes un peu hors-sujet par rapport au topic, mais pour revenir sur l'histoire des getter et des setter. Pour ne pas trop s'éloigner du sujet, si je prends comme exemples la classe AdjustColor, on peut voir qu'afin d'accéder à son attribut hue il faut s'y prendre comme cela:
On utilise ici une forme bien spéciale, qui ne sera pas inconnue aux utilisateurs de Visual Basic, mais la question que je me pose est comment s'utilise t'elle dans Flash ? Par exemple, si je fais une classe, comment puis-je créer des getter et setter pour mes attributs comme c'est fait dans l'exemple ci-dessus ? Est-ce que cette notation existait déjà dans la CS3 ? Car je n'en avais pas connaissance jusqu'à présent.