Flash: preload sia testuale che grafico

Di: fiorematt-design | 26/09/2020 18:47:16
Ciao,
ho bisogno di sapere come relazionare e far coesistere nell’action script i codici della barra di progresso e quelli della percentuale d’avanzamento in uno stesso frame. È un preload al primo fotogramma con goandplay al secondo frame. In particolare, i due codici che ho a disposizione e che singolarmente funzionano perfettamente.. ma.. uniti?
Ecco:
(barra di caricamento)
_root.stop();
barra.onEnterFrame = function() {
car = _root.getBytesLoaded();
tot = _root.getBytesTotal();
per = car/tot*100;
_root.barra._xscale = per;
if (per == 100) {
_root.gotoAndPlay(2);
}
};
(percentuale d’avanzamento)
stop()
this.onEnterFrame=function(){
caricati=this.getBytesLoaded();
totali=this.getBytesTotal();
percent=Math.ceil(100*caricati/totali);
preload_txt.text=percent;
if((caricati>=totali)&&(caricati>0)){
delete this.onEnterFrame;
gotoAndPlay(2);
}
}
e un’ultima cosa: perchè la barra comincia a vedersi solo in prossimità del 30%?
grazie.

Risposte



Ciao Fiorematt,
i due script che hai postato fanno la stessa cosa, quindi possiamo sceglierne uno e aggiungere una riga.
Script numero uno:
Questo script ha già le funzioni per calcolare la percentuale di caricamento, non resta che aggiungere una casella di testo dinamico sulla _root e chiamarla “preload_txt”. Dallo script ci riferiremo alla casella di testo e faremo in modo che ci mostri il numero.
_root.stop();
barra.onEnterFrame = function() {
car = _root.getBytesLoaded();
tot = _root.getBytesTotal();
per = car/tot*100;
_root.barra._xscale = per;
_root.preload_txt.text = Math.round(per);
if (per == 100) {
_root.gotoAndPlay(2);
}
};
Script numero due:
Qui abbiamo una percentuale che compare in una casella di testo, quello che ci manca è una riga per ridimensionare una barra. Creiamo quindi un MovieCLip sulla _root, assegnamo il nome “barra”, e poi lo chiamiamo dicendogli di ridimensionarsi:
stop()
this.onEnterFrame=function(){
caricati=this.getBytesLoaded();
totali=this.getBytesTotal();
percent=Math.ceil(100*caricati/totali);
preload_txt.text=percent;
_root.barra._xscale = percent;
if((caricati>=totali)&&(caricati>0)){
delete this.onEnterFrame;
gotoAndPlay(2);
}
}
///----------------------------------
Per quanto riguarda la visualizzazione ritardata del preload...
Se il preload appare verso il 30% vuol dire che il peso del primo fotogramma è il 30% di tutto il peso del filmato.
Il peso di un fotogramma dipende dalla grafica, dal suono e dalle azioni.
Se ritieni che sul primo fotogramma c’è troppa poca roba per giustificare un peso pari al 30% del peso totale è probabile che stai usando dei componenti, delle classi di Actioscript o che hai impostato alcuni oggetti della libreria per essere richiamati da un “attachMovie”.
Per controllare cosa stai esportando sul primo fotogramma controlla la libreria, allarga in orizzontale la Palette Libreria e constaterai che esistono diverse informazioni:
1. Nome
2. Tipo
3. Conteggio usi
4. Concatenamento
5. Data di modifica
Se qualcuno dei tuoi oggetti contiene un valore alla voce Concatenamento fai click con il tasto destro su quell’oggetto e scegli la voce Proprietà, dalla finestra che apparirà devi togliere la spunta alla casella che dice “Esporta nel primo fotogramma”.
Infatti questa opzione fa in modo che gli oggetti in questione vengano salvati nel fotogramma 1 appesantendolo.
Dopo aver fatto questo apri File > Impostazioni di Pubblicazione e scegli la scheda Flash.
Accanto alla casella della versione di ActionScript, se stai usando ActionScript 2.0 o superiore, c’è un pulsante che dice “Impostazioni...”, premilo.
Nella finestra che si è aperta scrivi 2 al posto di 1 alla voce “Esporta fotogramma per le classi”.
Infine, quando provi il filmato (CTRL+Invio) hai a disposizione dal menu “Visualizza” la voce “Profilo Ampiezza Banda”. Se selezioni di vedere questo profilo Flash ti mostrerà un diagramma nella parte alta della finestra, questo diagramma ti dice quanto pesa ogni singolo fotogramma.

Di: Professore | 26/09/2020 18:47:16