Aquí tienes una función que creé para un trabajo en AS2 hace algún tiempo, solamente que a mi me hacía falta la imagen en verde, azul o roja, tendrás que variarla un poco
Código :
//---Función para cambiar el color de una imagen con efecto de fade
import flash.filters.ColorMatrixFilter;
function fadeImageToColor(movie:MovieClip, customColor:String, strenght:Number):Void{
delete movie.onEnterFrame;
for(var n in movie.filter){
trace(n);
}
var R:Number=(movie.R)?movie.R:0;
var G:Number=(movie.G)?movie.G:0;
var B:Number=(movie.B)?movie.B:0;
movie.onEnterFrame=function():Void{
//---Matrix
var imagesMatrix:Array = [1, 0, 0, 0, R, //--- Rojo
0, 1, 0, 0, G, //--- Verde
0, 0, 1, 0, B, //--- Azul
0, 0, 0, 1, 0 //--- Alpha
];
var newColor:ColorMatrixFilter = new ColorMatrixFilter(imagesMatrix);
movie.filters = [newColor];
//---Variar los colores
switch(customColor){
case "RED" :
var difR:Number=(strenght-R)*.25;
R+=difR;
movie.R=R;
if(Math.round(difR*10)/10==0){
delete this.onEnterFrame;
}
break;
case "GREEN" :
var difG:Number=(strenght-G)*.25;
G+=difG;
movie.G=G;
if(Math.round(difG*10)/10==0){
delete this.onEnterFrame;
}
break;
case "BLUE" :
var difB:Number=(strenght-B)*.25;
B+=difB;
movie.B=B;
if(Math.round(difB*10)/10==0){
delete this.onEnterFrame;
}
break;
}
}
}
Ahora si quiesiera que al presionar un botón la imagen se pusiera rojiza con fade pongo:
Código :
fadeImageToColor(myMC, "RED", 100);
donde myMC es el movieClip con la imagen y 100 el alpha del color
si quisiera ponerla en su estado original pondría:
Código :
fadeImageToColor(myMC, "RED", 0)
Como el alpha del color está en 0 la imagen se mostrará como la original.
Saludos