Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    183

    Preload di file txt e jpg esterni

    Ciao a tutti.
    Io ho un filmato che mi carica esternamente 4 immagini jpg e un file txt che contiene le didascalie.
    Siccome mi serve che le immagini siano sinronizzate ognuna con la propria didascalia, avevo pensato di mettere un preload prima di tutto, con barra di caricamento e percentuale, che mi precarichi tutti i file prima di farli visualizzare all'utente.

    Il mio movie è composto da un frame sulla timeline principale con lo script per far ruotare le immagini e le relative didascalie, e un movieclip vuoto in cui vengono precaricate le immagini, e che contiene lo script per fare la transizione alpha tra una foto e l'altra.

    Come faccio a fare il preload di tutte le immagini e del txt esterni?
    Grazie e

  2. #2
    Ciao,
    vediamo, sul primo frame devi mettere il codice che fa da preload, e quando ha finito di caricare passa al frame successivo dove ci sono le immagini che ruotano e le didscalie.
    Per il preload di immagini sul forum ne trovi a volontà di script, per il preload del testo basta che usi loadVars.



    Spero di esserti stato un pochetto d'aiuto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    183
    Ciao a tutti, riprendo la discussione perchè non ho ancora rispolto il mio problema... questo Preload proprio non riesco a farlo.
    Ho trovato un tuo script, Lucker, di qualche tempo fa:

    immagini=new array("immagini/img1.jpg","immagini/img2.jpg","immagini/img3.jpg")

    function Preloader(array, funz_fine) {
    var t = _root.createEmptyMovieClip("preloader", 1000);
    t.createEmptyMovieClip("base", 1001);
    t.files = array;
    t.nfiles = array.length;
    t.num = -1;
    t.funzioneFine = funz_fine;
    t.carica = function() {

    _root.msg.text="Sto caricando il file ... "+this.files[this.num];

    this.num++;

    if (this.num == this.nfiles) {
    this.funzioneFine();
    this.unLoadMovie();
    } else {
    this.base.loadMovie(this.files[this.num]);
    }
    };
    t.onEnterFrame = function() {
    var perc = Math.round((this.base.getBytesLoaded()/this.base.getBytesTotal())*100);
    if (this.base.getBytesLoaded() == this.base.getBytesTotal() &&
    this.base.getBytesTotal() > 100) {
    barra._visible = 0;
    this.carica();
    }
    barra._xscale = perc;
    barra._visible = 1;
    };
    t.carica();
    }


    fine=function(){
    play();
    }
    Preloader(immagini,fine);

    ma non riesco a capire dove lo devo mettere per farlo funzionare, e se devo cambiare il nome a qualche cosa oppure lo devo inserire così com'è.
    Qualcuno riesce a spiegarmi come funziona?

    Grazie mille, sto proprio impazzendo..

  4. #4
    Ciao,

    lo scopo di questo script è quello di precaricare nella cache del browser tutti i file .jpg, .swf che vuoi per renderli poi velocemente disponibili.
    Lo puoi usare così com'è, tu devi cambiare solo il percorso delle immagini nell' array. Mettilo nel primo frame del filmato principale, dove ci dovrà essere sullo stage anche la barra di avanzamento, che si dovrà chiamare 'barra'.

    Prova così, dovresti riuscire.

    Bye.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    183
    Grazie mille per avermi risposto.
    Dunque, ho messo nel primo frame del mio filmato questo codice (trovato in un tuo altro post), con un campo dinamico sullo stesso frame, con nome msg (il resto del mio script è nel secondo frame)

    barra._visible = 0;
    immagini=new Array("template/nome/Camp-hosts/1.jpg","template/nome/Camp-hosts/2.jpg","template/nome/Camp-hosts/3.jpg","template/nome/Camp-hosts/3.jpg")

    function Preloader(array, funz_fine) {
    var t = _root.createEmptyMovieClip("preloader", 1000);
    t.createEmptyMovieClip("base", 1001);
    t.files = array;
    t.nfiles = array.length;
    t.num = -1;
    t.funzioneFine = funz_fine;
    t.carica = function() {

    _root.msg.text="Loading... "+this.files[this.num];

    this.num++;

    if (this.num == this.nfiles) {
    this.funzioneFine();
    this.unLoadMovie();
    } else {
    this.base.loadMovie(this.files[this.num]);
    }
    };
    t.onEnterFrame = function() {
    var perc = Math.round((this.base.getBytesLoaded()/this.base.getBytesTotal())*100);
    if (this.base.getBytesLoaded() == this.base.getBytesTotal() &&
    this.base.getBytesTotal() > 100) {
    barra._visible = 0;
    this.carica();
    }
    barra._xscale = perc;
    barra._visible = 1;
    };
    t.carica();
    }


    fine=function(){
    play();
    }
    Preloader(immagini,fine);

    .. ho modificato i percorsi delle immagini e scritto new arrai (nella prima riga) con la A maiuscola perchè altrimenti mi da un errore di Output.. però sembra non funzionare.. il mio filmato è tutto bianco, e continua a apparire e comparire la scritta Loading... che faccio?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    183
    Prima di
    function Preloader(array, funz_fine)

    ho provato a mettere stop();, come avevi suggerito tu nell'altro post. Adesso mi carica le 4 immagini perchè provandolo ho visto che mi fa allungare la barra di scorrimento 4 volte, e 4 sono le immagini. La prima immagine me la fa vedere però solo quella, e continua a saltare dal preload alla prima foto, e al posto delle didascalie che dovrebbe pescare da un txt mi scrive UNDEFINED...


  7. #7
    Ciao,
    allora metti lo stop() nel primo frame, e poi nel frame dove fai vedere le foto perché altrimenti ritorni al primo frame e così via.

    Per le variabili nel file txt devi usare LoadVars()

    var mievariabili = new LoadVars()
    mievariabili.onLoad = function(success){
    if(success){
    trace('variabili caricate e sono utilizzabili');

    }else{
    trace('Variabili non caricate')
    }
    }
    mievariabili.load("fileconvariabili.txt",livello," POST")

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    183
    Graaazieeee!! Funziooonaaa!!! Era lo stop sul secondo frame che mi mancava. Sistemato quello, sono ricomparse anche le mie didascalie.
    Grande! ^___^

    Solo due dettagli: invece del nome del file, è complicato far comparire una scritta tipo 1/4, 2/4, 3/4, 4/4 così l'utente sa quante immagini deve ancora caricare?
    Poi ho notato che una volta finito il download, l'immagine compare per un millisecondo, poi se ne va per un altro millisecondo e poi compare giusta e rimane. Fa una specie di lampo, appare, scompare e ricompare.. a cosa può essere dovuto?

    Grazie mille comunque, sei stato gentilissimo!!

  9. #9
    Ciao, per 1/4 2/4 etc... non è complicato

    _root.msg.text="Loading .. "+String(this.num)+" / "+String(this.nfiles);

    per il lampo dell'immagine, puoi provare così:

    t.files = array;
    t.nfiles = array.length;
    t.num = -1;
    this.base._visible = false

    Bye

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    183
    Ciao! Grazie per la risposta!
    Allora, il lampetto lo fa lo stesso, ma non importa, non da fastidio, quindi lo lascio così..

    Per 1/4, 2/4 etc. ho provato a mettere il tuo codice, solo che num = -1, quindi il conteggio parte proprio da -1, e fa -1/4, 0/4, 1/4, 2/4. Se io cambio num = -1 con num = 1, faccio danni irreparabili?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.