Quiero cambiar el color de un mc, hasta ahí bien.
myColor = new Color(myClip);
myColor.setRGB(0xFF0000);
Pero si después quiero resetearlo, es decir, eliminar cualquier transformación de color ¿cómo lo hago?
| ||||
Hola! Lo que podes hacer es almacenar el valor original en una variable global (que se puede acceder desde cualquier lado del swf) y luego asignarselo al objeto color, o sea: _global.ColorOriginal = new String() ColorOriginal = "FFFFFF" // O el color original que tenga tu mc ..... ..... myColor = new Color(myClip); myColor.setRGB(0xFF0000); ..... ..... //Aca volverías al color original myColor = new Color(myClip); myColor.setRGB("0x" + ColorOriginal); Bueno, espero que se haya entendido algo y que sirva... Saludos. Lucas |
| ||||
Gracias, pero no se trata de eso. El Clip tiene más de un color y si le doy un valor de color me los cambia todos. Lo que busco es algun script que elimine el cambio de color y me deje el MC como estaba antes. |
| ||||
Aaaah, entiendo... Sinceramente no conozco ningun código que "elimine la información de color", sí existe el que has citado, declarar un objeto color y asignarlo mediante el código hexadecimal... ¿Se dificultaría armar tantas variables como objetos compongan el movieclip o se haría mucho lío? Saludos. Lucas |
| ||||
Estimado rgr ptr, me tomé unos minutos para ver si te puedo solucionar el problema, vamos a ver. 1) Primero crea un MC llamado film Pon algunas formas con distintos colores en el MC film. 2) Ponlo en el escenario No olvides ingresar en el nombre en el cuadro de Nombre de Instancia: film 3) Luego copia el siguiente script en acciones de fotograma. Cita: Dale control-Enter. AntFilm = new Color(film) Antcolor = new Object(); Antcolor= {rb:red, gb:green, bb:blue, aa: '100'}; Mifilm= new Color(film); Micolortransform = new Object(); rojo=0 verde=128 azul=255 Micolortransform = {rb:rojo, gb:verde, bb:azul, aa: '100'}; Mifilm.setTransform( Micolortransform ); //Mifilm.setTransform( Antcolor); El resultado debería ser del color que le has aplicado con rojo=0, verde=128 y azul=255 (puedes cambiar estos valores para probar) Luego en la última instrucción elimina las barras // Dale nuevamente control-Enter. Espero que te haya funcionado (ojo usé la sintaxis de Flash MX, si usas MX 2004 cambia la misma) Un abrazo ;) etmoreno
__________________ Pasa por mi sitio cuando gustes, eres bienvenido !!! |
| ||||
Gracias rgr ptr, mira si quieres simplificarlo puedes usar UN SOLO OBJETO. Cita: Es decir lo único que debes hacer en el objeto es "undefinir" (en español no se si existe un término apropiado) las variables de cada uno de los colores.Mifilm= new Color(film); Micolortransform = new Object(); rojo=0 verde=128 azul=255 Micolortransform = {rb:rojo, gb:verde, bb:azul, aa: '100'}; Mifilm.setTransform( Micolortransform ); // red green blue deben ser variables undefined //Micolortransform = {rb:red, gb:green, bb:blue, aa: '100'}; //Mifilm.setTransform( Micolortransform ); Esto te simplifica no tener que usar un objeto sólo para cargar el anterior. Cada vez que quieras "resetearlo" sólo tienes que aplicar las dos últimas líneas en una función "limpiadora" Hasta la próxima etmoreno
__________________ Pasa por mi sitio cuando gustes, eres bienvenido !!! |