Gli effetti su testo, per intenderci quelli che hanno reso famosi lo Swish, l'SWFX o il Flax, sono tutti riproducibili in Flash. A scapito del tempo impiegato ( con i suddetti programmi gli effetti sono già pronti), con il Flash e un po' di fantasia, se ne possono costruire di molto belli, ma soprattutto personalizzati, e diversi da quelli che ormai si vedono dappertutto, decisamente noiosi.
Gli effetti su testo si basano tutti sullo stesso sistema: applicare in sequenza, alle diverse lettere di una scritta, la stessa animazione. Questo viene fatto duplicando un movieclip, che contiene l'animazione, per tante volte quante sono le lettere che compongono la scritta, e assegnando di volta in volta un valore diverso al campo di testo contenuto nel movieclip.
Vediamo un effetto base, assolutamente banale, per capire il funzionamento.
Creiamo un nuovo filmato. Tramite il pulsante + in basso a sinistra nella libreria, creiamo un movieclip al quale diamo il nome "esterno". Dentro il movieclip "esterno", selezioniamo lo strumento Testo, clicchiamo sullo stage, e scriviamo la lettera M.
Selezioniamo la casella di testo, e la allineiamo al centro tramite il pannello Paragraph. Apriamo quindi il pannello "Text Options", e la convertiamo in testo dinamico, a singola linea: associamo alla casella la variabile "testo", e incorporiamo solo i caratteri necessari (in questo caso maiuscole e il punto).
Selezioniamo la casella, e la convertiamo in movieclip con F8, assegnando come nome "animazione". Selezioniamo il nuovo movieclip sullo stage, all'interno del movieclip "esterno", e come nome di istanza diamo nuovamente "animazione". Ancora una volta premiamo il tasto F8, creando un nuovo movieclip, al quale diamo come nome di istanza "lettera".
Andiamo alla timeline principale, e trasciniamo sullo stage un'istanza del movieclip "esterno". A questo punto abbiamo sullo stage il movieclip "esterno", che contiene il movieclip "lettera", che contiene il movieclip "animazione", che contiene il campo di testo "testo".
Creiamo, tramite il pulsante "+" nella libreria, un nuovo movieclip, che chiameremo "controllo". Editiamo il movieclip "esterno", e trasciniamo un'istanza del movieclip "controllo" dalla libreria allo stage, in un punto qualsiasi, per comodità fuori dall'area visibile.
Selezioniamo il movieclip, apriamo il pannello Azioni, e associamo:
onClipEvent (load) {
scritta = "...EFFETTO DINAMICO SU TESTO...";
i = 0;
max = length(scritta);
kerning = 15;
size = 150;
_parent.lettera._visible = 0;
}
onClipEvent (enterFrame) { if (i<max) {
i++;
mc = "nuovo"+i;
duplicateMovieClip ("_parent.lettera", mc, i);
_parent[mc].animazione.testo = substring(scritta, i, 1);
_parent[mc]._x = (i*kerning);
_parent[mc]._xscale = size;
_parent[mc]._yscale = size;
}
}
Vediamo il significato riga per riga:
// al caricamento del movieclip
onClipEvent (load) {
// setta la variabile "scritta" con la
// stringa contenuta tra le virgolette
scritta = "...EFFETTO DINAMICO SU TESTO...";
// setta la variabile "i" uguale a 0
i = 0;
// setta la variabile "max" uguale alla lunghezza di "scritta"
max = length(scritta);
// setta la variabile "kerning" uguale a 15
// (determinerà la posizione delle lettere)
kerning = 15;
// setta la variabile "size" uguale a 150
// (determinerà le dimensioni delle lettere)
size = 150;
// rendi invisibile il movieclip "lettera", che verrà duplicato
_parent.lettera._visible = 0;
}
// ogni volta che il movieclip viene riprodotto
onClipEvent (enterFrame) {
// se la variabile "i" è inferiore a
// "max" (cioè alla lunghezza di "scritta")
if (i<max) {
// aumenta la variabile "i" di una unità
i++;
// attribuisci alla variabile "mc " il valore di "nuovo" + i
// (quindi, all'aumentare del valore
// della i, sarà man mano: nuovo1, nuovo2, nuovo3...)
mc = "nuovo"+i;
// duplica il movieclip "lettera", dagli
// il valore di "mc" come nome e dagli
// profondità "i"
duplicateMovieClip ("_parent.lettera", mc, i);
// setta la variabile "testo" contenuta
// in "animazione" contenuto in "mc"
// con il valore della lettera di "scritta"
// di posizione "i" (una alla volta tutte)
_parent[mc].animazione.testo = substring(scritta, i, 1);
// sposta il movieclip duplicato a destra
// per il valore di i per "kerning"
_parent[mc]._x = (i*kerning);
// setta larghezza e altezzad del duplicato
// con il valore di "size"
_parent[mc]._xscale = size;
_parent[mc]._yscale = size;
}
}
Esportiamo il filmato, ed otteniamo:
Nulla di più. Ora vogliamo abbellire l'effetto. Editiamo il movieclip "lettera", e creiamo una semplice interpolazione con l'effetto alpha sul movieclip "animazione". Andiamo al frame 30, premiamo F6. Inseriamo uno stop(). Torniamo al primo, settiamo, tramite il pannello "Effetti", l'alpha a zero. Clicchiamo ovunque sulla timeline tra i due frame, e inseriamo una interpolazione di movimento.
Esportiamo nuovamente:
Vogliamo aggiungere un effetto rotazione con diminuzione delle dimensioni dei caratteri. Editiamo nuovamente "lettera": nel primo frame, ruotiamo il movieclip "animazione", e lo ingrandiamo:
Esportiamo di nuovo:
Data la struttura contenuta nel movieclip "esterno", possiamo mettere più movieclip con l'effetto all'interno della stessa timeline.