Ciao a tutti,
sto cercando da diversi giorni di scrivere un codice che mi permetta di associare un effetto filtro luminosità, modificando la matrice colore, ad un set di immagini caricate dinamicamente da xml e trasformate in bottoni.

l'idea è quella di associare l'effetto all'immagine al rollOver e riportarla al colore originario al rollOut.

Ho trovato nella guida di flash quello che mi serve quindi tutta la parte costruttiva funziona, il problema che riscontro è che non è possibile applicare un filtro tramite rollOver se il target è mascherato.

Il mio target_mc, che riceve il file esterno, è mascherato durante onLoadInit con una maschera dinamica creata anch'essa durante tale listner. Nello stesso listner (onLoadInit) dico che il mio target_mc è un bottone e gli imposto gli stati onRollOver e onRollOut.
All'interno di tali stati faccio una tween con l'effetto.

Codice PHP:

import flash
.filters.ColorMatrixFilter;
import mx.transitions.Tween;
import mx.transitions.easing.*;


function 
maschera(target_mc:MovieClipboxWidth:NumberboxHeight:NumberfillColor:NumberfillAlpha:Number):Void {
    
with (target_mc) {
        
beginFill(fillColorfillAlpha);
        
moveTo(00);
        
lineTo(boxWidth0);
        
lineTo(boxWidthboxHeight);
        
lineTo(0boxHeight);
        
lineTo(00);
        
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.myMask1001000x99FF00100);


//quando commento il setMask l'effetto funziona bene
  
target_mc.setMask(target_mc.myMask);




    
target_mc.watch("brightness"brightnessWatchertarget_mc);

    
target_mc.onRollOver = function(){
var 
t:Object = new Tween(target_mc"brightness"Elastic.easeOut01003true);
}
    
target_mc.onRollOut = function(){
var 
t:Object = new Tween(target_mc"brightness"Elastic.easeOut10003true);
}
};
this.createEmptyMovieClip("img_mc"+ii);
var 
mc:MovieClip this["img_mc"+i];
mc._xmc._y100*i;

var 
img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("image.jpg"mc);
}
function 
brightnessWatcher(prop:StringoldVal:NumbernewVal:Numbertarget_mc:MovieClip):Number {
    var 
brightness_array:Array = [1000newVal,
            
0100newVal,
            
0010newVal,
            
00010];
    
target_mc.filters = [new ColorMatrixFilter(brightness_array)];
    return 
newVal;
}; 

Se il target_mc non lo maschero, funziona tutto bene, se lo maschero la tween viene eseguita male.
Chiedo scusa se il codice non funziona, l'ho scritto cercando di ricordarmelo a memoria... animate the brightness level of an instance by using the Tween class( è la guida).


Ps. quando noto l'anomalo comportamento il mio mouse non si trasforma in manina (che indica il bottone)...
cosa sarà?
Conoscete tutorial o altro su ciò che cerco di fare?

Un grazie mille a tutti coloro che interverranno.