2016-05-31 2 views
0

Je l'habitude d'utiliser beaucoup de filtres dans Animer, et il a été glorieux parce que je pouvais faire un filtre de couleur à la main, voir à quoi il ressemble, puis intégrer le code dans ce aussi, par exemple:façon de gérer les couleurs visuellement/manuellement et avec le code, dans Flash/Animer?

object.filters = e.currentTarget.filters; 

Mais j'essaie d'être bon et de rester à l'écart des filtres pour réduire la puissance de traitement, etc. De plus, les filtres ne prennent pas les codes hexadécimaux. Donc j'essaie d'utiliser colorTransforms. Mais maintenant, les choses deviennent vraiment difficile à manier parce que je figure que les couleurs qui je veux, notez tous les codes hexagonaux dans le Bloc-notes, puis écrire du code pour transformer les choses à cette couleur. Et je ne peux toujours pas voir les couleurs interagir jusqu'à ce que je publie le fichier. N'y a-t-il pas QUEL moyen de manipuler manuellement avec colorTransforms? Peut-être la section Advanced sous Color Effect -> Style? Comment j'imagine que cela se passe dans mon imagination est: J'ai quelques MovieClips qui interagissent pour créer un échantillon de tissu. Je tripote le colorTransform ou appliquer une certaine façon un code hexadécimal pour les manuellement (pas dynamiquement dans le code), et je peux utiliser ces nuanciers pour colorer dynamiquement d'autres choses, quelque chose comme:

newFabric.topPattern.colorTransform.color = fabricSwatch.topPattern.colorTransform.color; 

Je sais que je peux le faire si j'ai ajouté la couleur en utilisant le code en premier ... mais y a-t-il un moyen d'ajouter la couleur sur la scène/visuellement/manuellement et de faire rouler le code en avant? Je sais que je peux dessiner un bitmap et échantillonner la couleur d'un pixel, mais les motifs ont tous des formes et des transparences complexes, ce qui ne fonctionnera pas ici:/

Répondre

0

Ok! J'ai trouvé une solution de contournement! \ O/

Je peux modifier la teinte manuellement, et même entrer un code hexadécimal ou collyre une couleur de ma palette pré-faites. Je dois juste m'assurer de régler le paramètre "Teinte" sur la teinte à 100%. (Effet de couleur -> Style: Teinte)

Maintenant, j'utilise simplement le code colorTransform et il peut tirer mon Tint placé manuellement, et le transférer à d'autres éléments:

grl.overlay.shapes.transform.colorTransform = e.currentTarget.shapes.transform.colorTransform; 

Je ne même pas à changer mon code ET c'est mieux que les filtres puisque je peux entrer des codes hexadécimaux. Je ne sais pas comment cela se passera sur les performances par rapport aux filtres, mais quelqu'un vient de me dire que ça ne devrait pas être trop mal car rien ne s'anime. Je suis tellement heureux :)

0

Il existe BEAUCOUP de tutoriels pour l'utilisation de colortransforms - comme this one.

En ce qui concerne l'utilisation de couleurs hexagonales, vous pouvez convertir dans les deux sens entre les différentes représentations de couleur très facilement. Une simple recherche sur Google a révélé cette snippet:

var brightPinkHex:uint = 0xFF32CC; 
var brightPinkRGB:Object = HexToRGB(brightPinkHex); 
trace(brightPinkRGB.r+ ", " + brightPinkRGB.g + ", " + brightPinkRGB.b); 

function HexToRGB(value:uint):Object { 
    var rgb:Object = new Object(); 
    rgb.r = (value >> 16) & 0xFF 
    rgb.g = (value >> 8) & 0xFF 
    rgb.b = value & 0xFF    
    return rgb; 
} 

// OUTPUT 
// 255, 50, 204 
+0

Merci .. mais comment interagissez-vous entre la modification des codes hexagonaux sur la scène et par le code? –

+0

« Contrairement à la majorité des autres propriétés simples tels que l'alpha, x, y, la largeur et la hauteur, la couleur d'un objet ne peut pas être directement changées sur l'objet lui-même. » Y a-t-il du travail à faire? –