Codice PHP:
import flash.filters.ColorMatrixFilter;
import mx.transitions.Tween;
import mx.transitions.easing.*;
function maschera(target_mc:MovieClip, boxWidth:Number, boxHeight:Number, fillColor:Number, fillAlpha:Number):Void {
with (target_mc) {
beginFill(fillColor, fillAlpha);
moveTo(0, 0);
lineTo(boxWidth, 0);
lineTo(boxWidth, boxHeight);
lineTo(0, boxHeight);
lineTo(0, 0);
endFill();
}
}
for (var i:Number=0;i<3;i++){
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip):Void {
target_mc.createEmptyMovieClip("myMask", 100);
maschera(target_mc.myMask, 100, 100, 0x99FF00, 100);
//quando commento il setMask l'effetto funziona bene
target_mc.setMask(target_mc.myMask);
target_mc.watch("brightness", brightnessWatcher, target_mc);
target_mc.onRollOver = function(){
var t:Object = new Tween(target_mc, "brightness", Elastic.easeOut, 0, 100, 3, true);
}
target_mc.onRollOut = function(){
var t:Object = new Tween(target_mc, "brightness", Elastic.easeOut, 100, 0, 3, true);
}
};
this.createEmptyMovieClip("img_mc"+i, i);
var mc:MovieClip = this["img_mc"+i];
mc._x= mc._y= 100*i;
var img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("image.jpg", mc);
}
function brightnessWatcher(prop:String, oldVal:Number, newVal:Number, target_mc:MovieClip):Number {
var brightness_array:Array = [1, 0, 0, 0, newVal,
0, 1, 0, 0, newVal,
0, 0, 1, 0, newVal,
0, 0, 0, 1, 0];
target_mc.filters = [new ColorMatrixFilter(brightness_array)];
return newVal;
};