Eccomi qui come promesso.
Come prima cosa mettiamo le immagini dentro a una cartella, per comodità.
All'interno di Flash creiamo il nostro clip loading e gli diamo come nome concatenamento (linkage) "loader_mc".
All'inerno di questo clip ci sarà una barra di avanzamento con nome istanza "loader_barra_mc" e, nel mio caso, anche un campo di testo dinamico, in qui viene visualizzata la percentuale di caricamento, con variabile "perc" (ATTENZIONE NON NOME ISTANZA, MA VARIABILE).
Fatto questo torniamo in root e nel fotogramma interessato, nella timeline scriviamo il seguente codice:
codice:
//funzione che carica la foto dopo aver effettuato il loading
MovieClip.prototype.loadjpg = function(picName, holderName, imgWidth, imgHeight) {
var h = holderName == undefined ? "holder" : holderName;
//creo il mc per caricare l'immagine
this.createEmptyMovieClip(h, 1);
this[h].loadMovie(picName);
this[h]._visible = false;
//creo il mc con la barra di preload
var loadbar_mc = this.attachMovie("loader_mc", "loader_mc", 2);
//effettuo il loading
loadbar_mc._x = ((imgWidth/2)-(loadbar_mc._width/2));
loadbar_mc._y = ((imgHeight/2)-(loadbar_mc._height/2));
loadbar_mc.loader_barra_mc._xscale = 0;
var id = setInterval(function (mc) {
var bLoaded = mc[h].getBytesLoaded();
var bTotal = mc[h].getBytesTotal();
var percentDone = (bLoaded/bTotal)*100;
//Se l'immagine è stata caricata
if (bLoaded>1 && (bLoaded>(bTotal-10)) && mc[h]._width>0) {
trace("Elimino la barra di preload");
// Elimino la barra di preload
removeMovieClip(loadbar_mc);
mc._alpha = 99;
//rendo visibile l'immagine
mc[h]._visible = true;
clearInterval(id);
//altrimenti il loading continua
} else {
trace("loading");
loadbar_mc.perc = int(bLoaded/bTotal*100)+"%";
loadbar_mc.loader_barra_mc._xscale = percentDone;
mc[h]._visible = false;
}
}, 80, this);
};
Sempre nella timeline se vogliamo far caricare subito la prima immagine, per esempio, scriviamo il seguente codice
codice:
//creo il mc che conterrà la foto
this.createEmptyMovieClip("foto_mc", 0);
//lo posiziono
foto_mc._x = 20;
foto_mc._y = 150;
//assegno la foto alla variabile
foto = "img/foto01.jpg";
//richiamo la funzione che carica l'immagine
foto_mc.loadjpg(foto, "foto_caricata_mc", 380, 430);
Per far sì che si carichi l'immagine giusta cliccando sulla miniatura della foto, basta aggiungere il seguente codice, sempre nella timeline:
codice:
nomeMiniatura.onPress = function() {
foto_mc.loadjpg(foto, "foto_caricata_mc", 380, 430);
}
Spero di essere stata chiara e di esservi stata utile
Per qualsiasi chiarimento sono a disposizione (lavoro permettendo
)
Lorenza