Torna indietro Grafici Creativi > Web e Multimedia > Design Interattivo - Animazioni Flash
Registrazione FAQ Lista utenti Calendario Cerca I messaggi di oggi Segna forums come letti

Ricerca personalizzata
Rispondi
 
LinkBack (3) Strumenti discussione Modalità visualizzazione
Vecchio 11-03-2008, 20.53.15   3 links from elsewhere to this Post. Click to view. #1 (permalink)
Junior Member
 
L'avatar di Professore
 
Data registrazione: 04-03-2008
Residenza: Palermo
Messaggi: 35
Professore Da apprezzare per l'impegno dimostrato
Invia un messaggio via MSN a Professore
Predefinito Il Preload in ActionScript 1, 2 e 3

Salve,

apro ufficialmente il canale di ActionScript rispondendo a una domanda che ho sentito molte volte, su altri Forum:

Come si fa un Preload?

Immagino che tutti voi sappiate che cosa è un Preload:
Un Preload è un’animazione che intrattiene l’utente di un filmato Flash mentre attende il caricamento del filmato stesso, in maniera da poterlo poi riprodurre senza interruzioni dovute alla lentezza del collegamento.

Sebbene sembri una cosa banale da cui iniziare, è utile per conoscere la storia del linguaggio e l’evoluzione che questo ha avuto nel corso degli anni.

Prima di Flash 4 non era possibile creare un Preload per le animazioni, gli unici comandi che il Player riusciva ad eseguire erano molto semplici e questo rappresentava un grosso limite per gli sviluppatori.

Da Flash 4 fanno la loro apparizione alcuni comandi che consentivano di controllare questo aspetto, in particolare le proprietà _totalframes e _framesloaded.

La proprietà _totalframes, di sola lettura, ci forniva il numero totale di fotogrammi che compongono un’animazione, la proprietà _framesloaded, anche lei di sola lettura, ci rivelava fino a che fotogramma avevamo già in memoria.
Confrontando questi due valori potevamo sapere se tutto il filmato era pronto per essere eseguito. Tutto quello che serviva era ripetere questo controllo continuamente, almeno fino al totale caricamento del filmato.

A quel tempo ActionScript non aveva a disposizione nessun comando che ci permettesse di ripetere lo stesso controllo tante volte, quindi l’unica maniera per farlo era rimandare indietro di un fotogramma l’animazione fino a quando non fosse soddisfatta la condizione che ci serviva.

Un esempio di preload funzionante per Flash 4 è questo:
Codice:
// Secondo fotogramma
x = _totalframes;
y = _framesloaded;
if (x>y) {
    gotoAndPlay(1);
}
Un grosso passo ActionScript lo fa nell’Agosto del 2000, con l’uscita di Flash 5.
Molte funzioni furono aggiunte al linguaggio e questa versione è quella che oggi ricordiamo con il nome di ActionScript 1.0.

Anche se in Flash 5 non sarebbe stato più necessario utilizzare i fotogrammi per ripetere il controllo più volte, la gente ha continuato per tanto tempo ad utilizzare questo sistema, utilizzando però le due nuove proprietà getBytesTotal e getBytesLoaded che fornivano dei valori più affidabili, espressi in Bytes, riguardo al peso del filmato e di quanto già caricato.

Ecco come appariva un Preload semplice in Flash 5:

Codice:
// Secondo fotogramma
tot = _root.getBytesTotal();
car = _root.getBytesLoaded();
if (tot>car) {
    gotoAndPlay(1);
}
Sebbene sembri uguale al precedente il vantaggio c’è, ed è notevole, infatti confrontando i due valori potevamo stabilire la percentuale esatta dei Bytes caricati rispetto a quelli totali, così da mostrarla ai visitatori, magari assieme alla grafica di una barra di caricamento.

La gestione del Preload rimane più o meno invariata nel corso degli anni, alla ripetizione tramite fotogrammi sono stati sostituiti onEnterFrame o setInterval, ma nel complesso il criterio rimane lo stesso fino alla versione 8 di Flash.

Ecco un esempio di un Preload in ActionScript 2.0:

Codice:
/// Primo fotogramma
onEnterFrame = function() {
   var car:Number = getBytesLoaded();
   var tot:Number = getBytesTotal();
   if (car == tot) {
      delete(onEnterFrame);
      play();
    }
}
stop();
Cosa c’è di diverso rispetto ai precedenti? Non molto, si utilizza un solo fotogramma per ottenere un risultato identico a quello per cui prima se ne utilizzavano due: infatti il gestore onEnterFrame ripete le azioni con la stessa frequenza dei fotogrammi dell’animazione.

Ed eccoci arrivati alla fine del primo articolo sul canale ActionScript, alcuni di quelli che sono arrivati a leggere fino a qui si aspetteranno di leggere il sistema da utilizzare per creare un Preload col nuovissimo ActionScript 3.0, e io sono qui per accontentarli, ma prima una premessa...

Passare dalla versione 2.0, familiare e rassicurante, alla 3.0 comporterà grandi sforzi per tutti i Flasher, però bisogna considerare che:
  • La sintassi è più simile ad altri linguaggi molto evoluti, come Java o C#, questo aiuterà i programmatori che vogliono imparare il linguaggio.
  • Le prestazioni sono notevolmente migliori (qualcuno dice addirittura 100 volte più veloci).
  • Si possono realizzare cose che prima erano impensabili.
Per cui... armatevi di pazienza e cominciate a passare subito da AS2 ad AS3, perché è un altro mondo!

Detto questo ecco lo stesso precedente preload scritto con la nuova sintassi del linguaggio 3.0:
Codice:
addEventListener(Event.ENTER_FRAME, caricamento);
function caricamento(e:Event):void {
    var car = Math.round(stage.loaderInfo.bytesLoaded);
    var tot = Math.round(stage.loaderInfo.bytesTotal);
    if (car == tot) {
        removeEventListener(Event.ENTER_FRAME, caricamento);
        play();
    }
}
stop();
Spero che potremo collaborare per consentire un “passaggio indolore” da AS2 a AS3, ma continueremo anche a parlare della versione precedente che è attualmente la più diffusa e conosciuta.
Professore non è connesso   Rispondi citando
Links Sponsor

Rispondi

Bookmarks

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
Non puoi postare nuovi argomenti
Non puoi postare repliche
Non puoi postare allegati
Non puoi editare i tuoi post

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Attivato

LinkBacks (?)
LinkBack to this Thread: http://www.graficicreativi.com/design-interattivo-animazioni-flash/38-il-preload-actionscript-1-2-e-3-a.html
Scritto da For Type Data
che cosa è il PRELOAD | VIRGILIO Ricerca | Web This thread Refback 17-11-2008 14.29.18
preload flash 5 | VIRGILIO Ricerca | Web This thread Refback 16-10-2008 04.24.19
preload flash5 | VIRGILIO Ricerca | Web This thread Refback 08-07-2008 11.59.39


       

Web agency | Blog Seo | Biagio di Stefano

Tutti gli orari sono GMT +1. Adesso sono le 05.56.01.


Powered by vBulletin versione 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.
Traduzione italiana : www.vbulletin.it