Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Problema preloader

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198

    Problema preloader

    Sto cercando di creare il prelader spiegato in questo tutorial ma ho qualche problema perchè ottengo questo errore di actionscript


    Codice PHP:
    **Errore** Scena=Preloaderlivello=actionfotogramma=1:Linea 4Tipo non corrispondente nell'istruzione di assegnazione: è stato trovato Number mentre è richiesto Boolean.
         _visible = 0;

    **Errore** Scena=Preloader, livello=action, fotogramma=1:Linea 16: Tipo non corrispondente nell'
    istruzione di assegnazioneè stato trovato Number mentre è richiesto Boolean.
         
    _visible 1;

    Totale errori ActionScript2      Errori segnalati
    Io uso flash 8, puo' darsi sia dovuto ad una qualche incompatibilità?
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    quel tutorial era in Flash 5 e AS1,

    in AS2 non è consentito utilizzare 0/1 come false/true in variabili booleane, andrebbero sostituiti, o in alternativa puoi impostare la pubblicazione a Flash player 8 + AS1

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198
    Dove posso reperire un tutorial del preload per flash 8?

    Praticamente mi manca solo quello ed ho completato. Tu spieghi qualcosa su ltuo sito?

    P.S. ho utilizzato il tuo form, veramente notevole, complimenti, mi funziona a meraviglia!
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho solo preload su elementi esterni, io non uso preload su filmato principale perchè utilizzo un metodo diverso di caricamento

    in questo momento non posso farti un esempio... appena posso magari ti posto un codice semplice, da utilizzare

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198
    Si, faresti un favore a tutti, purtroppo sti preloader sono un gran bel casino...
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    intanto posto il codice, poi domattina... quando sono un attimo più sveglio, lo spiego

    questo codice va messo nella scena del preload

    codice:
    stop();
    MovieClip.prototype.preload = function(target:MovieClip, progress:Function, execute:Function):Void  {
    	this.onEnterFrame = function() {
    		var bl:Number = target.getBytesLoaded();
    		var bt:Number = target.getBytesTotal();
    		var pe:Number = Math.floor((bl/bt)*100);
    		if (!isNaN(pe)) {
    			progress(target, pe);
    		}
    		if (bl>=bt && bt>pe && pe == 100) {
    			this.onEnterFrame = undefined;
    			execute(target);
    		}
    	};
    };
    var onProgress:Function = function (target:MovieClip, percentual:Number):Void {
    	trace(target+" "+percentual);
    };
    var onComplete:Function = function (target:MovieClip):Void {
    	nextScene();
    };
    var m:MovieClip = this.createEmptyMovieClip("m", 1);
    m.preload(_root, onProgress, onComplete);

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ok, tenendo presente il codice postato ieri sera, organizziamo il nostro filmato...

    2 scene, una è quella del preload e deve essere la prima in ordine di apparizione

    nella prima scena inserisco il mio codice e, se voglio, un movieclip (barra) che rappresenta una barra ed un campo di testo (testo) che mi visualizzi l'avanzamento

    inserisco uno stop() in testa al codice per bloccare l'esecuzione del filmato fino a che questo non viene completamente caricato

    poi inserisco la funzione di preload
    Codice PHP:
    // inizializzo una funzione prototipo da assegnare ad un clip vuoto che farà da "generatore" per il preload
    // la funzione ha tre parametri
    // target: è il clip (nel nostro caso è la _root) di cui fare il preload
    // progress: è una funzione che inizializzeremo dopo, che viene invocata ogni volta che c'è un progresso nel preload
    // vien da se che questa funzione raccolga le azioni da fare per far "vedere" il preload grafico
    // execute: è la funzione che raccoglie le azioni da effettuare a fine preload
    MovieClip.prototype.preload = function(target:MovieClipprogress:Function, execute:Function):Void  {
        
    // al clip "generatore" attivo la funzione onEnterFrame che viene eseguita nel tempo, in maniera costante
        
    this.onEnterFrame = function() {
            
    // inizializzo una variabile che mi "porti" il valore attuale ad ogni ciclo, dei dati già caricati
            
    var bl:Number target.getBytesLoaded();
            
    // inizializzo una variabile che mi "porti" il valore dei dati totali da caricare
            
    var bt:Number target.getBytesTotal();
            
    // inizializzo la percentuale che ottengo dividendo i dati caricati per quelli totali e moltiplicando il valore
            // decimale ottenuto, per 100
            
    var pe:Number Math.floor((bl/bt)*100);
            
    // verifico se la percentuale ha assunto un valore e in tal caso richiamo la funzione di progresso
            
    if (!isNaN(pe)) {
                
    progress(targetpe);
            }
            
    // quando le condizioni sono soddisfatte e quindi il caricamento è giunto al termine
            
    if (bl>=bt && bt>pe && pe == 100) {
                
    // blocco l'enterFrame per evitare di farlo ciclare inutilmente a carico della CPU
                
    this.onEnterFrame undefined;
                
    // richiamo la funzione di fine preload, che si occupa delle azioni successive al caricamento
                
    execute(target);
            }
        };
    }; 
    a questo punto, leggendo i commenti dovrebbe essere facile comprendere come andare avanti...

    in pratica ora devo inizializzare le due funzioni, quella di progresso e quella finale
    Codice PHP:
    // posso dare qualsiasi nome a questa funzione, i parametri invece sarebbero quei due fissi, 
    // salvo di modificare lo script in alto, ma per il momento non ci serve
    var onProgress:Function = function (target:MovieClippercentual:Number):Void {
        
    // secondo quanto detto, abbiamo su _root una barra di progresso ed un campo di testo
        // perciò gli assegneremo le azioni per visualizzare il progresso
        
    barra._xscale percentual;
        
    testo.text "Caricamento..."+percentual+"%";
    };
    // anche qui non ha importanza il nome della funzione
    // in questo caso è molto semplice anche l'azione da effettuare
    // si manda solo il filmato alla nuova scena, nulla di più
    var onComplete:Function = function (target:MovieClip):Void {
        
    nextScene();
    }; 
    a questo punto si richiama effettivamente il preload, ma per farlo abbiamo bisogno del movieclip "generatore" che possiamo creare al volo, con AS

    var m:MovieClip = this.createEmptyMovieClip("m", 1);

    e la chiamata al preload avviene quindi sul clip "m"

    m.preload(_root, onProgress, onComplete);

    importante assegnare correttamente i parametri qui (i nomi utilizzati per le funzioni e il target che nel nostro caso è _root)

    non ci sarebbe altro, lo script è modificabile per varie esigenze, comunque questa è la base, se rispetti le istruzioni come descritte, vedrai che il preload funzionerà, l'ho testato e funziona perfettamente

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198
    Sei stato veramente gentilissimo, domani lo provero' da oggi infatti dovro' presentare il lavoro al mio amico, il filmato è cmq buonissimo come leggerezza e relativa velocità, il preload è un più che non mi guasta affatto. ed è molto utile anche per gli altri!!!

    Ti terro' informato sugli sviluppi!
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198
    Scusa se scoccio
    ma non potresti riassumere tutto in fla che magari puoi mettere a disposizione nel tuo sito?
    Bho vado a nanna ora, è quasi ora di alzarsi VVoVe:
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    boh, mi pare che non ne valga la pena... è una cosetta molto semplice... magari se mi dai la tua mail in pvt te lo spedisco, ma ti assicuro che non c'è nulla di più di quello che già ho scritto nel thread

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.