- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- classe PicLoader
-
classe PicLoader
Ciao Flash gente,
avendo notato grossi problemi da parte di molti di voi nel caricare filmati o immagini esterne ho deciso di scrivere 2 righe a riguardo.Innanzitutto vorrei dire che ,a parte la logica Actionscript 2.0 che scriverò e che scaricherete, i concetti sono mie opinioni personabili nonchè consigli.
I metodi della classe MovieClip: loadMovie e loadMovieNum sono stati implementati soprattuto per chi non ha una conoscenza piuttosto discreta di Actionscript.
Questo non vuol dire che permettano di fare tutto e di monitorare i bytes di caricamento del filmato principale oppure di interagire completamente col filmato esterno una volta caricato come fosse una Movieclip.
Personalmente il mio consiglio è di abbandonare questi 2 metodi ormai obsoleti e di utilizzare la classe MovieClipLoader per caricare filmati esterni o immagini esterne.Allego una classe scritta dal sottoscritto.
Come noterete dal .fla viene istanziata la classe PicLoader e viene passato un valore (stringa) che è la path dell'swf esterno che volete caricare.
A sua volta la classe PicLoader utilizza la classe MovieClipLoader per poter caricare l'swf esterno.
Nel file .as c'è il metodo onLoadInit, questo metodo vi permette di interagire completamente con l'swf (una volta caricato) come fosse una movieclip e quindi utilizzare tutte le proprietà della classe Movieclip (ad esempio _x,_y,_alpha,_rotation ecc ecc ).ecco l'url per scaricare i files:
http://www.actionscript.ws/gt_forum/PicLoader.zipPer favore se qualche moderatore può 'stickare' questo post in modo che gli utenti possano leggerlo gli e ne sarei grato.
-
ciao flashcoder, forse ho è problema mio ma nello zip nn c'è il file .as, ma il lavoro funziona lo stesso...
dimmi se ho frainteso io le tue parole o sto assistendo ad un'altro mistero di flash
grazie
-
Ciao Knight, il file .as è dentro....controllo di non essermelo dimenticato....
-
Si hai ragione, scusami tanto ...nella fretta mi è sfuggito.
Comunque l'ho aggiunto.
Prova adesso:
-
si adesso c'è bene, allora ho assistutti ad un altro mistero, senza .as i 2 .swf interagivano l ostesso...
-
No quello non è un mistero, cioè l'swf che c'era nello zip era già stato lanciato da me e quindi compilato con la classe PicLoader, per cui quando lo hai aperto funzionava bene, ma se aprivi il fla e pubblicavi l'swf allora in quel caso ti dava l'errore ' la classe PicLoader non è stata trovata' .
-
vero... quello si mi era capitato... poi ho riaperto lo zip e provato solo i swf e andavano...
cmq grazie di tutto
-
Ciao Flep, sono nuovo in questo forum. Mi sono imbattuto qui perchè ho problemi con un preload per filmati swf esterni per il nostro sito aziendale.
Il sito è:
http://www.gesconweb.it/sito come potrai notare in alcune pagine i contenuti vengono caricati dopo, lo puoi notare sicuramente in PORTFOLIO e nei lavori descritti dentro.
Nota bene, quando andrai ad aprire un lavoro in portfolio, che il primo lavoro che apri il loading no nparte, se ne apri un secondo invece si.Il problema vero è questo:
I lavoro prensenti in portfolio sono sei singoli swf caricati esternamente mediante preload.swf che faccio caricare in un clip vuoto nel primo fotogramma di sogni swf esterno. Comprendi?
Il codice del preload è questo:-
fotogramma
/*
Definisco le variabili "bytes caricati" e "bytes totali" della movie che ospita il preload
/
var caricando = _parent.getBytesLoaded();
var totali = _parent.getBytesTotal();
/
Quando questi due valori sono uguali il filmato che ospita il preload
parte (va al frame 2)
/
if (caricando == totali) {
_parent.gotoAndStop(2);
}
/
definisco le variabili in kb e la percentuale di caricamento
con valori interi
*/
var kbcaricati = Math.round(caricando/1024);
var kbtotali = Math.round(totali/1024);
var percento = Math.round((kbcaricati/kbtotali)100);
// da il valore al campo di testo dinamico
percentuale.valore = percento;
// nasconde la barra di scorrimento e la dimensiona.
barra._xscale = 1;
barra._visible = false;
/
setta la visibilità della barra di scorrimento
e la ridimensiona proporzionalmente alla percentuale di caricamento
*/
if (percento>1) {
barra._visible = true;
barra._xscale = percento;
} -
fotogramma
gotoAndPlay(1);
Sono arrivato alla conclusione che forse il loading è troppo pesante ma preload.swf pesa solo 21Kb e altri forum che lo hanno analizzato hanno detto che come peso va bene.
Ora pero' come posso far visualizzare questi loading sempre e non trovarmi che i primi swf che carica non si vedono i successivi invece si?Aspetto con ansia una tua risposta e spero di essere stato chiaro. CiAO GRAZIE DEL TUO AIUTO.
mickey
-
-
Ciao,
a me sembra che tutto funzioni correttamente.
Dove non vedo la preloadBar penso sia perchè l'swf che carichi è leggero da riuscire a visualizzarla, ma il contenuto me lo apre subito.
-
confermo quello che ha detto flep e aggiungo un complimenti buon lavoro
-
ciao Flep ho provato il tuo codice e devo dire..grandioso!!!!
però ho riscontrato che non si piazza su livelli ma direttamente sullo stesso livello del movie che lo richiama.
come posso fare per spostarlo su un altro livello?
grazie
-
Ciao giaiu,
non pensare ai livelli, dovresti pensre ai depths dell'swf (circa 16000).
Per 'swappare' il suo depths basta che usi il metodo swapDepths() e lo metti dove vuoi.