La luminosità è un attributo della percezione visiva in cui una sorgente sembra irradiare o riflettere la luce.
In questo tutorial impareremo come modificare la luminosità di un oggetto di visualizzazione utilizzando ActionScript 3.
Diamo un'occhiata al risultato finale su cui lavoreremo:
Usando la classe ColorTransform e un componente Slider aumenteremo o diminuiremo la luminosità di DisplayObject.
Apri Flash e crea un nuovo file Flash (ActionScript 3).
Imposta le dimensioni dello stage su 500x350 px e imposta la frequenza fotogrammi su 24 fps.
Qualsiasi DisplayObject può essere utilizzato con questa classe; per questo esempio ho scelto un'immagine da Flickr:
Posiziona l'immagine al centro dello stage, convertila in MovieClip e assegnagli un nome di istanza Immagine.
Creeremo un pannello con un componente Slider e un campo di testo dinamico come oggetti interattivi.
Seleziona lo Strumento Rettangolo Primitivo (R) e disegna un rettangolo 250x70 px, imposta il raggio dell'angolo su 7 e modifica l'alfa a 60.
Convertilo in MovieClip e aggiungi il seguente filtro:
Il pannello dovrebbe assomigliare a questo:
Fare doppio clic sulla MovieClip per accedere alla modalità di modifica e creare un campo di testo dinamico; imposta il nome dell'istanza su bValue (per "valore di luminosità") e centrarlo. Dagli un'entrata iniziale di 0. È anche possibile aggiungere un titolo al pannello e alcune icone come guida.
Apri il pannello Componenti (Cmd / Ctrl + F7) e trascina un componente Slider sul pannello Luminosità; centralo e chiamalo cursore.
Con il componente di scorrimento selezionato, premi MAIUSC + F7 per aprire il pannello Controllo componenti e modificare le opzioni come mostrato nell'immagine:
Crea un nuovo documento ActionScript e salvalo come Main.as.
Utilizzeremo una classe di documenti per questo progetto. Se non sei sicuro di come utilizzare una classe di documenti, leggi questa breve introduzione.
pacchetto
La parola chiave del pacchetto consente di organizzare il codice in gruppi che possono essere importati da altri script, si consiglia di nominarli iniziando con una lettera minuscola e utilizzare intercaps per le parole successive, ad esempio: le mie classi.
Se non vuoi raggruppare i tuoi file in un pacchetto o hai solo una classe puoi usarla direttamente dalla tua cartella di origine.
Alcune classi sono necessarie per far funzionare tutto questo. Per una descrizione più dettagliata di ogni classe, fare riferimento alla Guida di Flash (F1).
import flash.display.Sprite; importare fl.events.SliderEvent; import flash.geom.ColorTransform;
Il si estende keyword definisce una classe che è una sottoclasse di un'altra classe. La sottoclasse eredita tutti i metodi, le proprietà e le funzioni, in questo modo possiamo usarli nella nostra classe.
public class Main estende Sprite
In questo esempio è necessaria solo una variabile: un'istanza ColorTransform. Questo sarà usato per cambiare i valori RGB dell'oggetto di visualizzazione di destinazione.
var colorTransform: ColorTransform = new ColorTransform ();
Questa funzione viene eseguita quando la classe viene caricata.
Un listener SliderEvent viene aggiunto al componente Slider per eseguire una funzione quando l'utente cambia il valore dello Slider.
funzione pubblica Main (): void panel.slider.addEventListener (SliderEvent.CHANGE, updateBrightness);
Questa funzione viene eseguita quando il valore del cursore cambia. Questa è la parte ColorTransform. Gli offset rosso, verde e blu della matrice di trasformazione del colore sono impostati per corrispondere al valore del cursore.
funzione privata updateBrightness (e: SliderEvent): void / * Imposta gli offset RGB sul valore del cursore * / colorTransform.redOffset = e.value; colorTransform.greenOffset = e.value; colorTransform.blueOffset = e.value;
Vuoi sapere cosa stiamo facendo qui? Dai un'occhiata a questo articolo che spiega le trasformazioni del colore.
Questa riga applica le modifiche all'immagine sul palco.
image.transform.colorTransform = colorTransform;
Anche il testo nel pannello della luminosità viene aggiornato.
panel.bValue.text = e.value;
Torna al file .fla e nel pannello Proprietà imposta il campo Classe su Principale per collegarlo alla Document Class.
Ora puoi facilmente implementare un modo per modificare la luminosità di un'immagine o di un altro oggetto di visualizzazione utilizzando ActionScript 3.
Grazie per aver letto!