Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    24

    caricamento swf esterno

    Ho cercato di leggere i post vecchi, ma non sono riuscito a risolvere.
    Direi che è colpa del fatto che non ne so abbastanza, per cui chiedo scusa in anticipo per la noia della mia domanda.

    Il mio filmato occupa + di 100k, per cui devo fare un preload.
    Ho provato a farlo inserendo un frame all'inizio con il codice:
    stop();
    if (_root.getBytesLoaded() == _root.getBytesTotal()) {
    gotoAndStop(2);
    }
    dove nel frame 2 ci sono i miei movie.
    Non funziona per i seguenti motivi:
    - il caricamento è lentissimo, cioè con un 56k ci mette ancora 15 sec prima che compaia almeno lo sfondo della pagina.
    - alla prima volta che leggo la pagina si pianta sul primo frame, ma se poi faccio il refresh parte correttamente.

    Allora ho pensato che forse è ancora lento perchè cmq ci mette molto a scaricare la pagina intera e quindi mi conviene fare una pagina separata di pochi kb con il preload.

    Ho fatto questa pagina e ci ho messo questo codice:
    loadMovie("main.swf", 1);
    _root._level1._visible= 0;
    if (_root._level1.getBytesLoaded() == _root._level1.getBytesTotal()) {
    _root._level1._visible = 1;
    _root._level1.nextFrame();
    }

    Ovviamente non va.
    Qualcuno che mi può aiutare a prendere la via giusta?
    Grazie mille
    Nico

  2. #2
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    stop();
    if (_root.getBytesLoaded() == _root.getBytesTotal()) {
    gotoAndStop(3);
    }
    ... e nel frame n°2 ci metti:
    gotoAndPlay (1);

    In questo modo il filmato, che deve stare nel frame 3, partirà soltanto quando tutti i Byte saranno caricati per intero.

    Ciao,

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    24
    Ciao NAP, grazie della risposta.
    Non l'ho capita.
    Che senso ha mettere nel frame 2 un gotoandplay(1) se nel frame 1 c'è uno stop. Non ci andrà mai al frame 2, perchè si ferma all'1 fino a che non ha finito di leggere tutti i bite e poi salta al 3.
    Mi spieghi per piacere?

    Poi mi piaceva l'idea di fare un preload in un file separato da pochi kb, ha senso?

    La cosa che non capisco del preload è che se uno lo piazza nel file principale cmq la pagina rimane lenta da scaricare, per cui la sua funzione è solo di non far scattare l'animazione. Mentre invece se uno lo mette in un file diverso (piccolo) serve anche a ingannare l'attesa finchè il file principale non viene scaricato.
    Giusto?

    Grazie ancora

    Nico

  4. #4
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Ciao NAP, grazie della risposta.
    Non l'ho capita.
    Che senso ha mettere nel frame 2 un gotoandplay(1) se nel frame 1 c'è uno stop. Non ci andrà mai al frame 2, perchè si ferma all'1 fino a che non ha finito di leggere tutti i bite e poi salta al 3.
    Mi spieghi per piacere?

    Vero, una svista. Lo stop all'inizio non è che non abbia senso, semplicemente non agisce su nulla. Resta però indispensabile il gotoAndPlay (1); messo nel secondo frame. Perché ?
    Per evitare quello che ti succede, vale a dire un caricamento parziale in cui lo script, a tutti gli effetti, non agisce.

    Durante il caricamento la testina tenta di avanzare finché la condizione non si è verificata del tutto. E' come dire: "Alle 6 ci incontreremo, ma se sono le 5:59, l'appuntamento non è ancora avvenuto".


    Poi mi piaceva l'idea di fare un preload in un file separato da pochi kb, ha senso?

    No, non servirebbe a nulla, se non a complicare le cose.
    Avresti un passaggio in più e del tutto inutile.


    La cosa che non capisco del preload è che se uno lo piazza nel file principale cmq la pagina rimane lenta da scaricare, per cui la sua funzione è solo di non far scattare l'animazione. Mentre invece se uno lo mette in un file diverso (piccolo) serve anche a ingannare l'attesa finchè il file principale non viene scaricato.
    Giusto?

    Grazie ancora

    Nico

    Permettimi di dire che ti sei fatto delle idee tutte tue:
    il preloader deve stare nel primo frame del file da caricare ma se in quel frame c'è "un treno", vale a dire un'immagine pesantissima o altra cosa troppo pesante, allora il preloader non serve a niente, perché la condizione dice "tutti i Byte caricati", quindi anche quelli del "treno" che però non può far a meno di tardare nel caricarsi a pezzi, anzi, a vagoni :gren: proprio perché si trova nel primissimo frame.

    Cosa fare?

    Mettere nel primo frame una semplice scritta statica o, al massimo una clip che in loop fa lampeggiare la parola Loading...

    Altri modi di fare un preloader sono quelli di una casella che vede crescere la percentuale di caricamento o una barra che si allunga man mano che il file si sta caricando.

    Per chi magari ha già il primo frame occupato e non vuole spostare tutti gli altri frame, c'è la possibilità di mettere il preloader in una scena a parte che sarà la prima scena, mentre il filmato sarà nella seconda. In quel caso non basterà scrivere

    gotoAndPlay (3);

    Non funzionerebbe. Bisognerà dare un nome etichetta al frame in cui parte il filmato e raggiungerlo con:

    gotoAndPlay ("nome_dell'etichetta");

    Ciaaaao,

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    24
    Graaaaazie NAP.
    Ho capito quasi tutto. Soprattutto ho capito cosa devo fare.
    Quanto al PERCHE ti faccio ancora un paio di domande, nel caso in cui tu avessi tempo e voglia di rispondere.

    1) Effettivamente del preload mi ero fatto una idea tutta mia. La cosa che non so è: quanto si scarica un swf non si scarica il file intero? Si scarica frame per frame? Cioè non c'è bisogno che il dl del file sia completo per visualizzare l'inizio? Comincia a far vedere man mano gli oggetti della libreria che scarica in ordine per frame? Per questo mi dici che se io nel primo frame ho una cosa leggera (preload) lui la visualizzerà subito anche se non ha finito tutto l'swf?

    2)La seconda domanda l'ho capita mentre te la scrivevo.

    Grazie per il tempo che hai perso.

    Nico

  6. #6
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    - La cosa che non so è: quanto si scarica un swf non si scarica il file intero?

    Sì.

    Si scarica frame per frame?

    No, Byte per Byte.

    Un file è sempre un contenitore di dati, anche se si tratta di un file Flash, di un'immagine, un suono o un di filmato .avi.
    Scaricare un file vuol dire esattamente: prelevare una copia di quel file dal server in cui si trova, trasferirla per via telefonica nel tuo computer e scriverla nel tuo disco fisso. Quando la scrittura è completa, allora tu puoi vedere quel file per intero.
    Ne derivano due cose:

    1- il tempo che intercorre tra la connessione col server e il trasferimento della copia di quel file nel tuo computer, compreso il tempo di scrittura nel tuo disco fisso, è il tempo di "download".
    2 - Il file scritto del tutto nel tuo disco fisso diventa in seguito leggibile all'istante.


    Cioè non c'è bisogno che il dl del file sia completo per visualizzare l'inizio?

    E' proprio questo il punto da afferrare:

    con un preloader come quello che hai usato tu, dici al server (te lo scrivo in umano): dammi una copia di quel file che ho richiesto col mio browser ma non mostrarmi nient'altro al di fuori di quello che c'è all'inizio del file stesso, finché non avrai scritto tutto il contenuto restante nel mio disco fisso.

    Quindi, cosa avviene in fase di preload ?

    Semplice: il browser ti mostra solo la prima parte del file, quella che c'è nel primo frame (ecco a cosa serve il gotoAndPlay (1); di ritorno forzato verso lo stesso), e nient'altro, finché tutti i Byte non sono stati scritti nel tuo disco fisso.


    Comincia a far vedere man mano gli oggetti della libreria che scarica in ordine per frame?

    Questo avviene soltanto se non metti un preloader. In sostanza succede come in quelle pagine html in cui vedi la grafica caricarsi "pezzo dopo pezzo". In Flash invece, con un preloader ben fatto, vedrai in basso, nella barra di stato, sempre e soltanto " 1 oggetti rimanenti per l'apertura della pagina ".

    E non... 30... 25... 20... 10... Quell'1 è tutto ciò che si trova a partire dal frame n° 3 dell'swf che stai scaricando.


    Per questo mi dici che se io nel primo frame ho una cosa leggera (preload) lui la visualizzerà subito anche se non ha finito tutto l'swf?

    Sì, perché una cosa leggera viene scritta, e quindi visualizzata, alla velocità della luce... O quasi

    Grazie per il tempo che hai perso.

    Nico

    Se serve a trasmettere la conoscenza di un qualcosa da una persona all'altra, non è mai tempo perso, anzi, è solo un piacere, se non un dovere di volontario.

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  7. #7
    Ovviamente non ho letto tutte le botte e risposta con NAP, quindi se mi dovessi ripetere mi scuso con NAP

    Posso dirti come generalmente faccio io

    una volta fatto il mio swf inserisco una nuova scena, la rinomino e la sposto (cronologicamente) prima del mio filmato

    dopodichè creo un Clip minimo << come ti ha detto NAP >> e ci incollo

    l'essenziale

    onClipEvent (load) {
    _visible = 0;
    _root.stop();
    }
    onClipEvent (enterFrame) {
    if (_root.getBytesLoaded() == _root.getBytesTotal()) {
    _root.nextFrame();
    }
    _visible = 1;
    //Le 2 righe di sotto servono solo se hai la barra di avanzamento
    //perc = barra._xscale = Math.round((_root.getBytesLoaded()/_root.getBytesTotal())*100);
    //percentuale = perc + "%";
    }

    Ovviamente la scena Preload è composta da una sola Frame quindi con nextFrame() va alla scena successiva e parte il filmato.

    Un saluto
    Ps. incollo l'ultima di NAP xchè mi è piacuta

    Se serve a trasmettere la conoscenza di un qualcosa da una persona all'altra, non è mai tempo perso, anzi, è solo un piacere, se non un dovere di volontario

  8. #8
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Originariamente inviato da rempox
    ---
    Un saluto
    Ps. incollo l'ultima di NAP xchè mi è piacuta

    Se serve a trasmettere la conoscenza di un qualcosa da una persona all'altra, non è mai tempo perso, anzi, è solo un piacere, se non un dovere di volontario
    Ti ringrazio rempox per la citazione e sono sono contento di scoprirti in sintonia. Tempo fa questo forum era esemplare per la freschezza dei dialoghi e, cascasse il server di HTML.it, lasciando illeso il buon SuperSaibal, ci sforzeremo sempre più per mantenerlo nella pole position della gentilezza !



    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    24
    I miei complimenti a entrambi.
    Condivido in pieno il piacere di "trasmettere" anche se, a proprosito di Flash, ho ben poco da dire, purtroppo
    Sicuramente uno dei motivi per cui on line si vedono tante cose così belle in flash è il fatto che qui trovi sempre qualcuno gentile e pronto a rispondere.
    Continuate così.
    Grazie ad entrambi

    Nico

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.