Quando navigo, una delle cose che gradisco di più è
sapere quanto ci metterà una pagina a caricare tutti i suoi elementi
e se un sito è stato costruito totalmente in Flash, prima di avere
un qualcosa sullo schermo di tempo ne può passare un bel po' e stare
a fissare uno schermo vuoto non è il massimo.
In nostro aiuto, quindi, può accorrere una tecnica
chiamata comunemente lo schermo o la barra di loading.
Di queste tecniche ce ne sono molte, da molto semplici a molto
complesse (dipende anche dal risultato che si vuole ottenere) e quindi quelle
che verranno analizzate in questa sede non devono assolutamente essere prese
come oro colato o come le uniche esistenti sulla piazza.
Detto questo, cominciamo...
Innanzitutto cerchiamo di capire se ci serve uno schermo di
loading.
Se il nostro movie sta sotto i 20 Kb o è formato da
pochi frames, probabilmente mettere un loading all'inizio del movie non
è così necessario come potrebbe sembrare.
Voglio dire che uno schermo di loading serve solo nel
caso che l'effettivo caricamento dello swiff sia di una durata considerevole
(diciamo dai 30 secondi in su), in caso contrario non credo che potrebbe
essere utile.
Dopotutto questa tecnica serve per dire all'utente: "Io ho fatto del
mio meglio, ma guarda che potresti dover aspettare un po'..." e quindi
non è il caso di appesantire uno swiff che magari si carica in 10
secondi solo perchè vogliamo fare i figoni con le barre di preload
o perchè fare una schermata di loading è un casino di tendenza...
Per farla breve, anche se potrebbe essere d'effetto, consideriamo
una barra o uno schermo di loading solo ed esclusivamente se ce n'è
bisogno.
Le tecniche per realizzare questo effetto sono diverse e
tutte efficaci: si va dalla semplice schermata con un movie clip a raffinatissime
barre di preloading gestite da variabili e FS command.
Quindi poco per volta (e tempo permettendo...), vedremo di
analizzarne tipi diversi.
In modo semplice
Senza stare a scomodare FScommand, variabili e compagnia bella,
si può già creare un buon risultato utilizzando due action
molto semplici:
If frame is loaded e
Go to.
Analizziamo la faccenda: cosa fa uno schermo di preload ?
Rimane in bella vista fino a quando qualcosa non gli comunica che lo swiff
è stato caricato completamente e questo qualcosa è l'action
If frame is loaded.
Una volta che lo swiff è stato caricato bisogna andare
avanti e qui entra in campo l'action Go to.
Tutto questo si traduce nell'impostare un loop di controllo che gestisca
la partenza del movie.
Facendo le cose facili possiamo procedere in questo modo:
1- Inseriamo due Frames nelle posizioni 1 e 2 della
timeline.

Andiamo nelle proprietà del primo frame ed inseriamo
queste action:

NOTA: il fatto di aver messo 100 nel primo comando
non è obbligatorio.
Chiaramente il numero può cambiare a seconda di quanto lungo sia
il vostro movie e comunque dovrete sempre inserire il numero dell'ultimo
frame (sempre che abbiate una scena sola).
Questo frame funziona così: essendo il primo, il suo
caricamento è immediato e controlla se l'ultimo frame è stato
caricato.
Se l'evento è soddisfatto, ossia l'ultimo frame è stato caricato,
salterà al terzo frame, posizione di partenza del vostro movie.
Se l'evento non è soddisfatto, ossia l'ultimo frame non è
ancora stato caricato, continuerà la corsa verso il frame successivo,
ossia il secondo.
2- Nel secondo frame inseriamo un semplice Go to
& Play (1).
Questo serve per tornare al primo frame, nel caso che il test
di controllo non abbia passato la verifica.
Et voilà... abbiamo creato il nostro loop di controllo
che fa rivedere il primo frame fino a quando non viene caricato tutto il
movie.
3- Torniamo nel primo frame e inseriamo un nuovo layer
dove metteremo il nostro movie clip.
Questo clip può essere una scritta, un'animazione o qualunque cosa
vi passi per la testa e che indichi il caricamento.
Per testare tutto quanto: Control Menu > Test Movie
e Control Menu > Show Streaming.
Complichiamoci la vita ;-)
Ok, abbiamo visto nel tutorial precedente come creare una
schermata che avverte del loading in corso.
Questo metodo, comunque, va bene solo nel caso non vogliate
far vedere una barra progressiva di caricamento.
Intendiamoci, potete anche farla, ma comunque non sarebbe una "vera"
barra, ossia non indicherebbe il reale stato di caricamento dello swiff.
Per ottenere questo, bisogna complicare un pochino il lavoro
fatto in precedenza.
Un'avvertenza: i puristi di Flash potranno storcere il naso,
dato che questa è comunque una simulazione di una progressione, ma
come detto nel primo tutorial, cominciamo dalle basi e non stiamo a scomodare
variabili e FS Commands.
Ah, dimenticavo: il file di esempio di Michele è leggermente
diverso da questo tutorial, dato che usa meno frame per la barra, ma comunque
la teoria alla base è identica.
Per disegnare la barra, cominciate col disegnare una riga
che abbia delle divisioni che vanno da 0 a 100 con incrementi di 10.
Fatela diventare symbol e poi, con questa riga come riferimento,
create dieci rettangoli di diverse lunghezze che userete per indicare 10,
20, 30 fino a 100%.
Sbizzarritevi pure nel creare una barra graficamente di effetto,
ma fatelo solo quando avrete imparato bene a gestire gli oggetti sulla scena.
Per organizzare bene il lavoro, create un nuovo layer per
la barra.
Poi, all'inizio del vostro movie, inserite 11 frame.
Inserite la riga quotata nel frame 1 e poi dal 2 al 11 inserite
i rettangoli (chiaramente in ordine di lunghezza...).
Ora possiamo occuparci dei comandi.
La logica da seguire è questa: far compiere una serie
di controlli progressivi del caricamento dello swiff e visualizzare di conseguenza
un certo frame.
Mettiamo, per facilità di calcolo, che abbiate un movie
di 100 frame (esclusi i primi 11).
Per una barra che incrementa di 10 in 10, dovrete far controllare il caricamento
dei frame 21, 31, 41 fino a 111.
I comandi da inserire sono questi.
| Primo
frame |
Stop
If frame is loaded (11)
Go to next frame
End frame loaded
|
| Secondo
frame |
Stop
If frame is loaded (21)
Go to next frame
End frame loaded |
| Terzo
frame |
Stop
If frame is loaded (31)
Go to next frame
End frame loaded |
Andate avanti così fino a quando non avrete programmato
tutti e 11 i frame.
L'undicesimo naturalmente (se avete fatto bene i calcoli...)
controllerà l'ultimo frame e una volta passato il controllo, salterà
al next frame, ossia l'inizio del vostro movie.
Per testare tutto quanto: Control Menu > Test Movie
e Control Menu > Show Streaming.