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