Capito..
Quindi potrebbe essere sufficiente un semplice effetto di trasparenza.. come tu stesso ai citato, anche se non ho capito precisamente cosa hai fatto..
L'effetto lo puoi ottenere in tanti modi.
Ad esempio con l'utilizzo della classe Tween.
Ho realizzato una piccola funzione che crea l'effetto fade utilizzando questa classe.
Ti spiego come usarla..
- Inserisci un campo di testo statico sullo stage, e imposta il carattere e il colore bianco per il testo.
Non usare caratteri dispositivo.. ovvero i primi 3 font che sono visualizzati nel menu a tendina della casella 'carattere', altrimenti l'alpha non avrà effetto.
Ovviamente non immpostare nemmeno "Usa caratteri dispositivo" dal menu a tendina 'Metodo di rendering caratteri', ma ad esempio imposta "Antialiasing per animazione"- Seleziona il campo di testo e premi F8 per trasformarlo in simbolo. Imposta il tipo "Clip filmato"
- Nomina l'istanza. Dal pannello Proprietà nella casella 'nome istanza' inserisci ad esempio "item1"
- Per impostare un area sensibile al mouse, puoi agire in vari modi. Ad esempio tu hai utilizzato un bottone.
Ma volendo fare una cosa più funzionale e riutilizzabile, possiamo crearla da script nella stessa funzione che utilizzeremo per l'effetto fade.
In questo modo puoi applicare l'effetto a qualsiasi istanza senza preoccuparti di creare pulsanti vari.
Inserisci quindi questo script sul primo frame del livello principale:
L'ultima riga assegna l'effetto all'istanza in questione..codice:import mx.transitions.Tween; function setLightEffect(clip:MovieClip):Void { // // ---- PARAMETRI DELL'EFFETTO ---- // durata della dissolvenza (in secondi) var durata = 0.5; // valore alpha iniziale var iniAlpha = 60; // --------------------------------- // // imposto il clip col valore alpha iniziale clip._alpha = iniAlpha; // creo un'area sensibile all'interno del clip clip.createEmptyMovieClip("hit", clip.getNextHighestDepth()); var bnd:Object = clip.getBounds(clip); with (clip.hit) { beginFill(0); moveTo(bnd.xMin, bnd.yMin); lineTo(bnd.xMax, bnd.yMin); lineTo(bnd.xMax, bnd.yMax); lineTo(bnd.xMin, bnd.yMax); lineTo(bnd.xMin, bnd.yMin); endFill(); _alpha = 0; } // funzione richiamata dagli eventi del mouse var lighting = function (clip:MovieClip, stato:Boolean):Void { var end = stato ? 100 : iniAlpha; clip.lightFade.stop(); clip.lightFade = new Tween(clip, "_alpha", mx.transitions.easing.Regular.easeOut, clip._alpha, end, durata, true); }; // assengo la funzione agli eventi del mouse clip.onRollOver = function() { lighting(this, true); }; clip.onRollOut = function() { lighting(this, false); }; } // imposto l'effetto al clip "item1" setLightEffect(item1);
Potrai utilizzare la stessa funzione richiamandola più volte per assegnare l'effetto a più istanze.
Es:
codice:setLightEffect(item2); setLightEffect(menu.home); setLightEffect(menu.portfolio);![]()