Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it L'avatar di bob18
    Registrato dal
    Jun 2004
    Messaggi
    1,035

    Preloader per i movie esterni

    Salve.

    Ho creato una animazione principale contenente un menu dal quale richiama le varie sezioni contenute nei rispettivi movie esterni.
    Questa animazione ha un preloader, e le azioni dei pulsanti funzionano alla perfezione... solo che sarebbe necessario inserire un preload per ogni sezione, ovvero ogni movie esterno richiamato dallo stesso menu.

    come posso fare?
    ho provato ad inserire ad ogni movie esterno lo stesso preloader che ha il movie principale ma non funziona, nel senso che il filmato viene caricato ma del preload neanche l'ombra...

    vie alternative?

    grazie milla

  2. #2

  3. #3
    Utente di HTML.it L'avatar di bob18
    Registrato dal
    Jun 2004
    Messaggi
    1,035
    grazie per il link.
    però mi è un po' difficile capire in quanto il mio preloader è differente da quello usato dall'utente autore di quel post.

    in teoria ho capito che l'errore sta proprio nello script che ho inserito (è uguale a quello del movie principale), solo che non so come agire.

    il preload è formato da un testo "loading" ad esempio, con il seguente script:
    onClipEvent(load){
    _root.stop();
    }
    onClipEvent(enterFrame){
    if(_root.getBytesLoaded() == _root.getBytesTotal()){
    _root.play();
    }
    }
    ... e da una barra di caricamento con as:
    onClipEvent (load) {
    _xscale = 1; // all'inizio la barra sarà invisibile
    }
    onClipEvent (enterFrame) {
    car = _root.getBytesLoaded();
    tot = _root.getBytesTotal();
    _xscale = Math.ceil(car*100/tot);
    }
    So che è totalmente sbagliato ma non so da dove iniziare!


  4. #4
    Utente di HTML.it L'avatar di bob18
    Registrato dal
    Jun 2004
    Messaggi
    1,035
    uppete

  5. #5
    La discussione che ti avevo suggerito contiene la soluzione che vai cercando.
    Forse non hai letto bene, o non hai letto tutto, oppure... non lo so, a questo punto dovresti fornire qualche indicazione in più (p.es. come carichi i file esterni).

    Ritornando alla discussione di cui sopra, una soluzione potrebbe essere la seguente:
    1) per il filmato principale lasci le cose come stanno (ossia utilizzi il codice che hai già scritto
    2) per i filmati esterni utilizza il codice suggerito da and80
    3) di tale codice metti la function sul primo frame della timeline principale
    4) nei punti in cui richiami i filmati esterni, aggiungi il codice per il preload esterno

  6. #6
    Utente di HTML.it L'avatar di bob18
    Registrato dal
    Jun 2004
    Messaggi
    1,035
    grazie mille pasavign, però non mi sono chiare alcune cose.

    3) di tale codice metti la function sul primo frame della timeline principale
    cos'è la function? e il primo frame in questione è quello del filmato che andrà a caricare o quello del filmato principale?

    4) nei punti in cui richiami i filmati esterni, aggiungi il codice per il preload esterno
    i punti sono i pulsanti che mi richiamano i filmati esterni, ma il codice qual è?
    forse questo??

    on (release) {
    loadMovie("esterno.swf", "contenitore");
    }


    grazie

  7. #7
    La function è il codice scritto da and80, da inserire nel 1° frame della timeline principale del filmato principale:
    codice:
    preload = function(clip, ID){
    	clip._alpha = 0;
    	car = clip.getBytesLoaded();
    	tot = clip.getBytesTotal();
    	perc = Math.floor((car/tot)*100);
    	if(!isNaN(perc)){
    		trace(perc+"%");
    //
    //	... qui, al posto del trace, si possono inserire le istruzioni
    //	... per visualizzare: barre, percentuali ecc. ecc
    //		
    	}
    	if(car >= tot && tot > perc && perc == 100){
    		clearInterval(_root[ID]);
    		clip._alpha = 100;
    	}
    }
    Il codice per richiamare i filmati esterni vanno bene, ma...
    occorre inserire il richiamo della funzione di preload:
    codice:
    on (release) { 
        loadMovie("esterno.swf", "contenitore"); 
        [COLOR=red]a = setInterval(preload, 50, _root.contenitore, "a"); 
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    81
    Salve,
    ho provato il preload e mi trovo in questa situazione:

    FILMATO PRINCIPALE ("Uno.swf")
    - Un clip contenitore vuoto
    - Un bottone con associato lo script di and80 (con cui carico nel clip vuoto "Due.swf")
    - Nel primo frame della timeline principale lo script sempre di and80 (dove ho sostituito il trace con la percentuale di avanzamento)


    FILMATO SECONDARIO ("Due.swf") del peso di 300Kb
    - Un'animazione (con interpolazione di forma) che va dal fotogramma 1 al 15 (entrambi chiave) e nel fotogramma chiave 16 una immagine
    - Uno stop(); nel 16° fotogramma

    Il tutto è servito solo per capire il funzionamento dello script, che più avanti mi servirà
    di sicuro, quindi la grafica è tirata via.

    Cosa succede? Appena caricata la pagina e cliccato sul bottone parte la perc. di caricamento e una volta arrivata al 100% si vede subito l'immagine, senza l'animazione precedente.
    Mentre se si riclicca sul bottone funziona correttamente (la perc. è molto più veloce ma si riesce a leggere che non arriva subito al 100%).

    Ho fatto una prova che potete travare >> QUI <<

    Da cosa può dipendere questo fatto?

    Grazie in anticipo.

  9. #9
    posta il codice e dimmi che nome istanza hai attribuito al clip che funge da contenitore.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    81
    Originariamente inviato da pasavign
    posta il codice e dimmi che nome istanza hai attribuito al clip che funge da contenitore.
    Il codice sul primo frame è:

    stop();
    preload = function (clip, ID) {
    clip._alpha = 0;
    car = clip.getBytesLoaded();
    tot = clip.getBytesTotal();
    perc = Math.floor((car/tot)*100);
    if (!isNaN(perc)) {
    progres = perc+"%";
    }
    if (car>=tot && tot>perc && perc == 100) {
    clearInterval(_root[ID]);
    clip._alpha = 100;
    }
    };
    button.onRelease = function() {
    clip.loadMovie("due.swf");
    a = setInterval(preload, 50, _root.clip, "a");
    };


    Il clip contenitore è istanziato clip, button è il pulsante mentre progres è il campo di testo dinamico dove compare la percentuale.

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.