ciao, quello che ti serve lo puoi ottenere utilizzando le interpolazioni direttamente dalla timeline, però ho pensato che forse poteva farti comodo un codice riutilizzabile che ottenga quell'effetto, allora ti ho scritto questo:
Codice PHP:
import flash.filters.ColorMatrixFilter;
function toBw():Void {
var increment:Number = .11;
this.onEnterFrame = function():Void {
if (increment<=.33) {
var bwMatrix:Array = [1-2*increment, increment, increment, 0, 0,
increment, 1-2*increment, increment, 0, 0,
increment, increment, 1-2*increment, 0, 0,
0, 0, 0, 1, 0];
var colorMatrix = new ColorMatrixFilter(bwMatrix);
image.filters = [colorMatrix];
increment += .11;
} else {
delete this.onEnterFrame;
}
};
}
function toColor():Void {
var increment:Number = .11;
this.onEnterFrame = function():Void {
if (increment<=.33) {
var colMatrix:Array = [.33+2*increment, .33-increment, .33-increment, 0, 0,
.33-increment, .33+2*increment, .33-increment, 0, 0,
.33-increment, .33-increment, .33+2*increment, 0, 0,
0, 0, 0, 1, 0];
var colorMatrix = new ColorMatrixFilter(colMatrix);
image.filters = [colorMatrix];
increment += .11;
} else {
delete this.onEnterFrame;
}
};
}
image.onRollOver = toBw;
image.onRollOut= toColor;
quello che devi fare è importare un'immagine (a colori
) nello stage, trasformarla in mc e dargli nome istanza image. poi copi e incolli il codice sul primo fotogramma e vedi come va.