Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    65

    Cambiare colore a immagine mascherata

    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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    65
    Allora, chiedo ancora scusa per il post di ieri, ero veramente alla frutta.

    Il problema non è che il clip sia mascherato o meno, anche se commentando delle linee poi funzionava :master:, ma che sia eseguita correttamente la 'new Tween' colpendo il bersaglio giusto...

    Ho risolto con un array di bersagli.

    Grazie a tutti lo stesso.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.