Flash: preload interni alla scena

Di: Pacio | 26/09/2020 18:09:19
stò creando un sito ricco di immagini che rendono l'svf troppo peso all'apertura. Non conoscendo molto Action Script ho sempre pubblicato i siti con un unico preload nel primo fotogramma che rimaneva in download fino al fot 33 della scena:
ifFrameLoaded (33) {
gotoAndPlay(3);
}
Vorrei anticipare il download solo degli oggetti usati nei primi fotogrammi dove ci sono dei collegamenti ad altri fotogrammi. Una volta cliccato un puls con un collegamento ad un altro fot dovrebbe iniziare un altro download specifico solo degli oggetti usati.
spero di essermi spiegato

Risposte



Dividi le tue sezioni in piu swf e poi ad ognuno gli metti un preload e lo carichi nell swf con LoadMovie è il metodo più veloce.

Di: Michael Knight | 26/09/2020 18:10:19


grazie del consiglio!
non avevo mai importato degli .svf dentro a dei .fla ...
Ma il metodo non mi funziona!
Come faccio a caricare il movie .svf ?

Di: Pacio | 26/09/2020 18:10:19


Ciao Pacio...
La prima brutta notizia che ti do è che ifFrameLoaded è deprecato già dalla versione 5 di Flash, e siamo alla 8.
La seconda brutta notizia è che dovrai usare un po' di ActionScript per caricare dei filmati esterni.
La terza brutta notizia è che si dice SWF, con la "W". Se lo scriverai male all'interno di ActionScript non otterrai i risultati che speri.
Inoltre ti pregherei di scrivere in italiano e senza abbreviazioni, non è un sms, è un forum molto bello e più persone riusciranno a capire quello che chiedi, più probabilità ci saranno che qualcuno ti risponda.
Ora, prima di passare a loadMovie vediamo un semplice preload.
Sul primo fotogramma del tuo filmato inserisci questo codice, sulla fiducia:
car = getBytesLoaded();
tot = getBytesTotal();
per = Math.round(car*100/tot);
E sul secondo fotogramma questo:
if (car<tot) {
gotoAndPlay(1)
}
Questo è un semplice preload, inoltre se inserisci una casella di testo dinamica che richiama la variabile "per" puoi visualizzare la percentuale di caricamento.
Ora che sappiamo fare un preload passiamo alla seconda parte.
Se vuoi caricare solo i primi fotogrammi, gli altri li devi cancellare, infatti il filmato Flash sarà caricato per intero una volta richiesto dal browser.
Quindi crea un filmato con i soli pulsanti che ti servono, salvalo come index.fla, poi ci ritorneremo.
Crea un altro filmato e chiamalo "pagina1.fla", disegna qualcosa, tanto per provare, salvalo nella stessa cartella del precedente e pubblicalo (crea il file SWF).
Torniamo sul primo filmato...
Sui primi due fotogrammi abbiamo il preload, sul terzo abbiamo un'azione Stop() e tutti i pulsanti che ci servono.
Seleziona un pulsante e inserisci questa azione:
on (release) {
loadMovieNum("pagina1.swf", 1)
}
A questo punto prova il filmato e premi il pulsante...
Il secondo filmato viene caricato sopra il primo, se il secondo filmato ha un preload visualizzerai anche quello.
Ecco che abbiamo caricato solo i contenuti richiesti.

Di: Professore | 26/09/2020 18:11:19


Professore sei stato chiarissimo!
amo questo forum!

Di: Pacio | 26/09/2020 18:11:19


Aggiungo inoltre:
Dopo che hai caricato il filmato con il sistema che ti ho indicato avrai dei "livelli" separati, quindi li puoi controllare separatamente...
_level1.play() avvia il filmato che hai caricato
_level1.stop() ferma il filmato che hai caricato
Il livello che hai caricato si chiama _level1 perché quando lo abbiamo caricato gli abbiamo detto di posizionarsi lì, rivediamo il rigo di codice:
loadMovieNum("pagina1.swf", 1);
loadMovieNum è il comando per caricare un filmato su un livello.
"pagina1.swf" è il percorso per il filmato da caricare.
1 è il livello sul quale vuoi caricare.
Possiamo caricare filmati su diversi livelli, per esempio
loadMovieNum("altrapagina.swf", 3)
carica il filmato "alrapagina.swf" sul livello 3 e lo comandiamo riferendoci a lui con il nome _level3
I livelli più alti stanno sopra, e coprono i livelli più bassi.
per riferirti al filmato principale invece usa _level0...
_level0.play();
_level0.stop();
Questi sono riferimenti assoluti, significa che li puoi mettere dove vuoi: nel filmato originale o nel filmato che carichi dopo, non importa...
_level0 è sempre il livello più basso e _level1, _level2, _level3, ecc... stanno sopra.
Ultima cosa:
loadMovieNum("pagina1.swf", 0)
puoi caricare un filmato sul livello zero, ma essendo il livello zero occupato, il nuovo filmato prenderà il posto del filmato che trova, e perderai i contenuti vecchi a favore di quelli nuovi.

Di: Professore | 26/09/2020 18:11:19