Récupréer la valeur RGB d'un CLIP ?

Résolu
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005 - 27 déc. 2005 à 22:39
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005 - 28 déc. 2005 à 17:13
Salut aux flasheurs, voilà ma question est simple : comment afficher la couleur d'un clip si on ne la connaît pas ?



Exemple : un clip récupère aléatoirement des valeurs de R, de G et de B
puis s'affiche. Or je ne connais pas la valeur de cette nouvelle
couleur.



Cette méthode ne fonctionne pas :



color = mon_clip.Color;

valeur = color.getRGB().toString(16);

trace(valeur);



si vous avez une idée...

Nicosse

7 réponses

cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 2 décembre 2008
28 déc. 2005 à 05:50
en fait, je dis que des conneries (ouais,
ca m'arrive souvent). Comment generes tu tes nouvelles valeurs de R, G
et B? si elles sont generees par un code du genre:

R = Math.floor((Math.random()*100)*(255/100)).toString(16), tu peux donc les recuperer. Non? enfin, je vois pas le processus en fait...


Felix, joyeux Noel Felix!
3
cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 2 décembre 2008
28 déc. 2005 à 05:41
non je crois qu'il faut passer pas la methode getPixel.toString(16) plutot:



lorsque ton clip est colorie, tu recuperes donc les 3 variables des valeur de R, G et B. soit, ici rr, gg et bb.

crees un BitmapData "invisible" que tu colorieras avec ses valeurs, puis interroge le sur ses valeurs RGB avec getPixel, soit:





import.flash.display.BitmapData



var ControleurRGB:BitmapData = new BitmapData (1,1, true, 0x00rrggbb)

var clip:MovieClip = this.createEmptyMovieClip("clip",

this.getNextHighestDepth())

clip.attachBitmap(ControleurRGB, this.getNextHighestDepth())



laCouleurDuClip.text = "0x" + ControleurRGB.getPixel(0,0).toString(16)



pas teste, mais ca devrait etre bon




Felix, joyeux Noel Felix!
0
cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 2 décembre 2008
28 déc. 2005 à 06:06
et pis 100*255/100 = 255... ca c'etait pas mal non plus... fatigue le pere CortoH, va aller faire dodo....

Felix, joyeux Noel Felix!
0
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005
28 déc. 2005 à 09:58
Oui, aves des détails ce sera mieux....

en fait sur ma frame j'ai ceci, des tableaux avec certaines valeurs de R, G, B.

var rougesArray = [247,246,239,160,131,254,79,0,87,126,133];
var vertsArray = [106,100,1,108,176,91,153,40,117,198];
var bleusArray = [32,78,37,26];

Sur l'occurence de mon MC (c'est pas une image, mais une forme hein !) je mets ces instructions

myColor = new Color(this);
randomColor = random(_root.rougesArray.length);
randomAlpha =random(100);
maTransformationDeCouleur = {ra: randomPourcent, rb:_root.rougesArray[randomColor], ga:randomPourcent, gb:_root.vertsArray[randomColor], ba:randomPourcent, bb:_root.bleusArray[randomColor], ab:randomAlpha};
myColor.setTransform(maTransformationDeCouleur);

Du coup mon MC choisit parmi les arrays et me sort une belle couleur, par contre je ne connais pas sa valeur. Comment la récupérer et la passer à un second clip ??

Merci d'avance CortoH

(ce zoli code vient de : http://righton.zone.free.fr)

Nicosse
0

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

Posez votre question
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005
28 déc. 2005 à 10:25
Hey ça y est j'ai trouvé !!! en fait c'est hyper simple bien entendu...

var rougesArray = [247,246,239,160,131,254,79,0,87,126,133];
var vertsArray = [106,100,1,108,176,91,153,40,117,198];
var bleusArray = [32,78,37,26];
color = new Color (carre);
randomColor = random(_root.rougesArray.length);
randomAlpha =random(100);
maTransformationDeCouleur = {ra: randomPourcent, rb:_root.rougesArray[randomColor], ga:randomPourcent, gb:_root.vertsArray[randomColor], ba:randomPourcent, bb:_root.bleusArray[randomColor], ab:randomAlpha};
color.setTransform(maTransformationDeCouleur);

valeur = color.getRGB().toString(16);
trace(valeur);

(les deux dernières lignes....)

Nicosse
0
cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 2 décembre 2008
28 déc. 2005 à 11:55
et ben tant mieux, finalement, j'me disais bien que si c'etait genere, c'etait recuperable... bravo!


Felix, joyeux Noel Felix!
0
nicosse Messages postés 24 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 29 décembre 2005
28 déc. 2005 à 17:13
Bououououh je craque !!!!!

Bon voilà ce que je veux faire : sur un premier calque je veux créer un clip (rond) qui récupère une couleur aléatoirement. Dans le même temps le clip dit à un autre clip (carre1) placé qur le même calque que lui et au même moment : prends la même couleur que moi, ce qu'il fait.

Mais je veux également le faire pour un second clip (carré 2), placé qur un autre calque et arrivant plus tard sur l'animation !!!

Et ça marche paaaaaaas....

Voilà le code associé à rond :

onClipEvent(load){
myColor = new Color(this);
randomColor = random(_root.rougesArray.length);
randomAlpha =random(100);
maTransformationDeCouleur = {ra: randomPourcent, rb:_root.rougesArray[randomColor], ga:randomPourcent, gb:_root.vertsArray[randomColor], ba:randomPourcent, bb:_root.bleusArray[randomColor], ab:randomAlpha};
myColor.setTransform(maTransformationDeCouleur);
couleur_rond = myColor.getRGB().toString(16);
_root.carre.Color = new Color
ma_color = new Color(_root.carre);
ma_color.setRGB("0x"+couleur_rond);
_root.carre2.Color = new Color
ma_color2 = new Color(_root.carre);
ma_color2.setRGB("0x"+couleur_rond);
}

Tu as une idée ? ce serait le bonheur !
Nicosse
0
Rejoignez-nous