Comunidad de diseño web y desarrollo en internet online

Problemita con ColorTransform

Citar            
MensajeEscrito el 12 Ene 2009 05:43 am
gente, tengo un problema:
Como soy bastante nuevo en esto del actionscript busque por internet algun codigo que me permita cambiarle el color a un movie clip, y me encontre con uno (lo dejo aca abajo) que me funciono a la perfeccion.
El que hizo el codigo uso un "color picker" blah blah, mejor les dejo el link de la pagina para que lo vean mejor, ahi esta el ejemplo de lo que hizo, para que me entiendan bien.
http://www.leobaraldi.com.ar/2007/10/30/pintar-movieclip-con-actionscrip-usando-la-clase-colortransform/#comment-1105

La cosa es cuando le quiero cambiar el color a DOS movie clips. Que parte del codigo tengo que modificar?

muuchisimas gracias y perdonn las molestias :)

Código :

//importamos las clases necesarias
import flash.geom.Transform;
import flash.geom.ColorTransform;
//creamos una variable para Transform y le asignamos el elemento a pintar
var trans:Transform = new Transform(rect);
//creamos una variable con el color inicial
var color:Number = 000000;
//llamamos la función encargada de pasar nuestro color hexadecimal a RGB
var ConvColor:Object = deEXaRGB(color);
//Esta es la función que se encarga de traspasar el modo HEX a RGB
function deEXaRGB(valor) {
var pre = "0x";
var RGB = new Object();
RGB.red = (pre+valor>> 16) & 0xFF;
RGB.green = (pre+valor>> 8) & 0xFF;
RGB.blue = pre+valor & 0xFF;
return RGB;
}
//creamos una función cosa que podamos volver a llamarla cada ves
//que cliquemos el colorPikup
function pintar() {
//acá almacenamos los valores RGB, como pueden ver recuperamos los valores desde un objeto
//"ConvColor" y simplemente concatenamos el objeto con el atributo, ejmp: ConvColor.red (rojo)
var blueColorTransform:ColorTransform = new ColorTransform(0, 1, 1, 1, ConvColor.red, ConvColor.green, ConvColor.blue, 0);
trans.colorTransform = blueColorTransform;
}
//pintamos por primera vez
pintar();
//creamos un detector para nuestro Color picker
cpicker.addListener(this);
this.change = function(evt:Object) {
//almaceno el color seleccionado
color = evt.getRGB();
//hago la conversion
ConvColor = deEXaRGB(color);
//vuelvo a pintar el cuadrado
pintar();
};
//NOTA: PARA ESTE EJEMPLO USE UN COLOR PICKER DE "sephiroth", ESTE ES UN COMPONENTE
//QUE PUEDEN DESCARGARLO DESDE ESTA URL: http://www.sephiroth.it/file_detail.php?id=147# 

Por Reinx

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 Ene 2009 09:24 am
Sin ver el resto del FLA, a lo mejor me equivoco, pero creo que deberias hacer esto:

Creas una segunda variable transform:

var trans2:Transform = new Transform(rect2);

En la función pintar cambias el color también al segundo elemento:

trans2.colorTransform = blueColorTransform;

Por esedeerre

132 de clabLevel



 

MadRid

opera
Citar            
MensajeEscrito el 13 Ene 2009 02:28 am
no, ya intente, y cuando hago eso, se anula la primera variable :S

Por Reinx

34 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Ene 2009 02:53 am
a ver.. probando me di cuenta de algo. les cuento mas o menos lo que quiero hacer
tengo 3 clips, dos estan visibles, y el otro aparece mediante attachmovie. vamos a decirle clips A, B y C en ese orden.
El color picker con el script estan dentro de C, y lo que quiero hacer es que cambie el color de A
lo que hice fue reemplazar el "rect" del codigo por "_root.A"
esa parte del codigo me quedo asi entonces:

Código :

var trans:Transform = new Transform(_root.A);


ahora quiero que con el mismo color picker cambie tambien de color B, entonces creo una nueva capa, y en el fotograma escribo

Código :

var trans:Transform = new Transform(_root.B);


eso, NO FUNCIONA. me pasa que cuando selecciono el color, solo se me cambia B, y A queda con el mismo color.
entonces opte por hacer dos color picker, llamandolos "cpicker1" y "cpicker2". los codigos quedaron igual pero reemplaze "cpicker" por "cpicker1" y "cpicker2" y quedaron asi:

Código :

cpicker1.addListener(this);
PARA A

Código :

cpicker2.addListener(this);
PARA B

ESO tampoco funciono.

PEEEEEEERO
me di cuenta que si ponia el "cpicker2" y su codigo en otro clip de pelicula (llamemosle D) ... FUNCIONA
pero la verdad queda bastante feo.. alguna idea de como arreglarlo?

muchas gracias

Por Reinx

34 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.