Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema con preloader

  1. #1
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303

    Problema con preloader

    Ciao a tutti,

    ho un problema con un preloader effettuato con il metodo load() della classe Loader.
    Il file a.swf carica il file b.swf. Durante il primo caricamento visualizzo la loadbar che si scala perfettamente seguendo l'evento "progress", e poi viene rimossa al "complete".
    Unico problema è che al refresh della pagina html che contiene a.swf, il browser recupera dalla cache il file b.swf che si visualizza in un baleno (e fin qui tutto ok), ma mi mostra per una frazione di secondo ancora la mia preloadbar. E' possibile risolvere questo problema o non c'è modo?

    A questo indirizzo potete vedere il test che ho fatto:

    http://www.klauzz.com/test

    E qui di seguito il codice che ho utilizzato nel file a.swf.

    codice:
    var loader:Loader;// The asset loader
    var mainpreloader:MainPreloader;//The preloader instance
    
    //Starts the loading process
    photoViewer();
    
    function photoViewer() {
    	// Create the Loader
    	createLoader();
    	// Create the progress indicator
    	createProgressIndicator();
    	// Start the load operation
    	load(new URLRequest("externalfile.swf"));
    }
    
    function createLoader():void {
    	// Create the Loader
    	loader = new Loader();
    
    	// Register for events
    	loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener);
    	loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeListener);
    	loader.contentLoaderInfo.addEventListener(Event.INIT, initListener);
    
    }
    
    function createProgressIndicator():void {
    	mainpreloader = new MainPreloader();
    	mainpreloader.name="mainpreloader";
    	mainpreloader.loadBar.width=0;
    	mainpreloader.x = 600 / 2 - (mainpreloader.width / 2);
    	mainpreloader.y = 300 / 2 - (mainpreloader.height / 2);
    }
    
    function load(urlRequest:URLRequest):void {
    	loader.load(urlRequest);
    	if (! contains(mainpreloader)) {
    		addChild(mainpreloader);
    	}
    }
    
    // Listener invoked whenever data arrives
    function progressListener(e:ProgressEvent):void {
    	// Update progress indicator. 
    	var percent:int=Math.round(e.bytesLoaded/e.bytesTotal*100);
    	mainpreloader.loadBar.width=percent;
    }
    
    function initListener(e:Event):void {
    	addChild(loader.content);// Add loaded asset to display list
    }
    
    // Listener invoked when the asset has been fully loaded
    function completeListener(e:Event):void {
    	// Remove progress indicator.
    	removeChild(mainpreloader);
    }
    Klauzz

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Prova a rimuovere il preload sull'INIT invece che sul COMPLETE, non sono sicuro al 100% ma potrebbe funzionare. L'alternativa sarebbe di verificare sul PROGRESS quando i bytesLoaded e bytesTotal sono vicini anche se non perfettamente identici e eliminare il preload in quel momento

    Ah, usa anche il controllo dell'opacità (alpha) la mandi a 0 all'inizio del preload, dentro al progress la mandi a 1 e dentro l'init la rimandi a 0, dovrebbe andare anche meglio.

  3. #3
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    Grazie per la dritta!
    Faccio una prova quanto prima e ti faccio sapere

  4. #4
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    Ciao,

    ho apportato le modifiche suggerite, ma purtroppo senza il successo sperato.
    A questo punto mi sta sorgendo un enorme dubbio:
    è possibile che questa anomalia da me segnalata sia invece un comportamento del tutto normale, dovuto semplicemente all'architettura dei browsers?
    Del resto si percepisce il preloader solo per un breve istante.
    Mi confermate che anche nei vostri progetti i preloaders dei filmati principali hanno questa caratteristica ad ogni refresh?

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da klauzz
    Mi confermate che anche nei vostri progetti i preloaders dei filmati principali hanno questa caratteristica ad ogni refresh?
    Beh sì, è un comportamento normale dovuto ad un leggero delay che c'è in ogni caso nella lettura del file, anche se questo è già presente in cache. Se dovessi riuscire, più tardi cercherò di fare delle prove e vedere se si possa aggiustare il tiro.

  6. #6
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    ah, ok... allora non era solo un mio problema
    grazie ancora.

    Kla

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.