Cambio de color de Objetos en AS3 con ColorTransform.
Sunday, 13. December 2009
Un ejemplo desarrollado en Adobe Flash que muestra la utilización de ColorTransform.
Cambiar el color de los objetos con ActionScript 3 es bastante útil y sencillo, y nos permite lograr cierta interactividad visual para el usuario de una animación/aplicación que desarrollemos tanto en Adobe Flash como en Flex. Lo único que tenemos que hacer es, en primer lugar, crear una variable del tipo ColorTransform a la cual le asignamos el valor de ‘transform.colorTransform’. Ésta variable la utilizaremos para almacenar la información del color que luego aplicaremos. Esto lo hacemos de la siguiente manera:
var miColor:ColorTransform=transform.colorTransform;
Con este código lo que realmente estamos haciendo es introducir un objeto (no visual) que es una instancia de la clase ColorTransform. Esta clase nos permite definir un color de una forma sencilla, para después asignarlo a otro objeto. Asignamos el color de la siguiente forma:
miColor.color=0x00CC00;
Para establecer un color debemos darle su valor en dígitos hexadecimales, tal cual como denotamos los colores para otros lenguajes como HTML. Sin embargo, en vez de escribir el símbolo ‘#’ para denotar que es un valor en hexadecimal, para que Flash o Flex lo interpreten como un color en dígitos hexadecimales, debemos usar ’0x’ (el numero 0 y la letra x). Después pasamos los valores en el siguiente orden: 0xRRGGBB donde RR=numero de 2 dígitos para la cantidad de rojo (de 00 hasta FF) GG=cantidad de color verde y BB=cantidad de azul. Lo mejor si queremos utilizar un color y no sabemos cómo escribirlo es abrir la paleta de colores, pararse sobre un color y ver en el campo de texto que aparece arriba cuál es su valor hexadecimal. Por ejemplo 0×000000 es el color negro y 0xFFFFFF es el color Blanco.
Ahora que hemos asignado un color, solo debemos decirle que modifique el color del objeto. Para esto, el objeto debe tener un nombre de instancia. Por ejemplo, tenemos un círculo en el escenario. Debemos convertirlo en un símbolo para que AS3 pueda saber a qué objeto nos referimos. le ponemos como nombre de instancia ‘circulo’ y ahora podemos definir su color:
circulo.transform.colorTransform=miColor;
Así habremos dado el color a nuestro círculo.
Vale agregar que todo el símbolo cambiará de color (incluso el borde). Por esta razón podemos separar en símbolos diferentes o insertar dentro de un sólo símbolo los elementos que queremos que cambien de color, para especificarlo, y dejar lo demás por fuera del símbolo.
Codigo Final:
var miColor:ColorTransform=transform.colorTransform;
miColor.color=0x00CC00;
circulo.transform.colorTransform=miColor;
Un saludo para todos.
Puedes expresar cualquier duda, comentario, sugerencia o aporte en este mismo lugar.
Esk- Samuel Jiménez.






Cesar Flores Says:
Hola Samuel,
quisiera saber si tienes un lugar donde se pueda descargar el archivo fla de este y otros de tus ejemplos.
gracias
luis vivas Says:
hola samuel
e estado tratando de aplicar texturas
a un dibujo
de la misma manera como lo hacer con los colores
que sea con texturas
1- selecionar la textura
2-luego ir con el mouse y seleccionar el area en el dibujo
para fill con la textura
pense q me podrias alludar como aplicar esto en flash
gracias
luis
vivasdesigner@hotmail.com
eskombro Says:
Puedes importar la imagen de la textura que desees a flash como mapa de bits. Seleccionas el objeto que quieres que tenga la textura. Vas a la paleta de colores que normalmente está arriba a la derecha (Panel de color). Ahí estamos usualmente en la pestaña “Color” así que cambiamos a la pestaña “Muestras” y seleccionas el color. Luego pintas normalemnte el objeto.
Espero que eso responda a lo que preguntabas, si entendí bien.
Saludos.
james Says:
parce y como creo los botoncitos para seleccionar el color en As3
GUSUM Says:
Gracias por el artículo!
alejandro Says:
Gracias………muy fácil, pero muy efectivo.