Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309

    Interrompere un ciclo for fino a quando..?

    salve il quesito è questo ho un ciclo for da 0 a 10 che all'interno ho inserito del codice per caricare diveri swf esterni, dopo un'ulteriore modifica ho cercato di inserire un loading per ogni swf con la classe MovieClipLoader, il problema che incomincia a caricare il primo swf e non termina di caricarlo perchè si trova in un for, in pratica mi carica solo l'ultimo. si può dire al ciclo di aspettare che si sia caricato l'swf e poi di continuare??
    vi posto un po di codice:
    Codice PHP:
    _global.indice 0;

    for (
    _global.indice 0_global.indice <= 1_global.indice++) {
        
    preloadMovie();
    }

    function 
    preloadMovie() {
        var 
    mcLoad:MovieClipLoader = new MovieClipLoader();
        var 
    mcList:Object = new Object();
        
        
    mcList.onLoadInit = function(){
            
    trace("Inizializzato");
            
        }
        
        
    mcLoad.addListener(mcList);
        
    createEmptyMovieClip("clip",100);
        
        
    trace("Carica fondo: "+"fondo_"+ (_global.indice+1) +".jpg");
        
        
    mcLoad.loadClip(("fondo_"+ (_global.indice+1) +".jpg"), clip);
        
        
    mcList.onLoadProgress = function(targetbytesLoadedbytesTotal){ 
            var 
    percentuale:Number Math.floor((bytesLoaded/bytesTotal)*100);

            
    _root.loader._xscale percentuale;
            
    _root.txtLoader.text percentuale;
        }
        
        
    mcList.onLoadComplete = function(target){
            
    _root.loader.removeMovieClip();
            
    _root.txtLoader.removeMovieClip();

            
    trace("completo");
        }

    Ciao By Peter_Pan...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    altri test, altri comportamenti che non capisco, ho modificato il codice che ho postato, ora entra nel for, chiama la funzione preloadMovie() la esegue senza però entrare in onLoadProgress, onLoadComplete e infine in onLoadInit, ritorna nel for richiama la funzione preloadMovie() si rifà tutta la funzione però questa volta entrando nelle funzioni onLoadProgress, onLoadComplete e onLoadInit, ma lo fa per due volte, e poi mi carica le due immagini...

    posto il codice modificato:
    Codice PHP:
    _global.indice 0;

    for (
    _global.indice 0_global.indice <= 1_global.indice++) {
        
    preloadMovie();
    }

    function 
    preloadMovie() {
        var 
    mcLoad:MovieClipLoader = new MovieClipLoader();
        var 
    mcList:Object = new Object();
        
        
    mcList.onLoadInit = function(){
            
    trace("Inizializzato");
            
            
    with (eval("clip"+(_global.indice-1))) {
                
    _xscale 50;
                
    _yscale 50;
                
    _x = (10*(_global.indice+1));
                
    _y 0;
            }                
        }
        
        
    mcLoad.addListener(mcList);
        
    createEmptyMovieClip(("clip"+_global.indice),(100+_global.indice));
        
        
    trace("Carica fondo: "+"fondo_"+ (_global.indice+1) +".jpg");
        
        
    mcLoad.loadClip(("fondo_"+ (_global.indice+1) +".jpg"), eval("clip"+_global.indice));
        
        
    mcList.onLoadProgress = function(targetbytesLoadedbytesTotal){ 
            var 
    percentuale:Number Math.floor((bytesLoaded/bytesTotal)*100);

            
    _root.loader._xscale percentuale;
            
    _root.txtLoader.text percentuale;
        }
        
        
    mcList.onLoadComplete = function(target){
            
    _root.loader.removeMovieClip();
            
    _root.txtLoader.removeMovieClip();

            
    trace("completo");
        }

    in più... senza il for nell'output mi stampa prima la scritta completo (onLoadComplete) e poi la scritta Inizializzato (onLoadInit), invece con il for mi stampa due volte la scitta completo e poi due volte la scritta Inizializzato...
    Ciao By Peter_Pan...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    e non finisce qui... se seguo con il debug mi scrive due volte di seguito completo e poi due volte di seguito inizializzato, se simulo il download senza debug mi scrive una volta completo e una volta inizializzato e poi dinuovo completo e inizializzato, così come dovrebbe essere, solo che mi carica prima la seconda immagine e poi la prima
    Ciao By Peter_Pan...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    up, nessun suggerimento???
    Ciao By Peter_Pan...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho letto solo la prima parte del post e mi sono fermato immediatamente perchè non sono riuscito a capire come mai utilizzi un ciclo for, se vuoi temporizzare i caricamenti e farli sequenziali (uno che segue l'altro a caricamento precedente avvenuto), ti basta richiamare la medesima funzione che già utilizzi (preloadMovie()) all'interno dell'onLoadInit senza fare alcun ciclo

    se vuoi utilizzare il MovieClipLoader ti basta fare una cosa del genere

    Codice PHP:
    var indice 0

    function 
    mcLoading() {
        var 
    lo = new MovieClipLoader();
        var 
    li = new Object();
        
        
    li.onLoadInit = function(){
            
    trace("Inizializzato");

            
    with (this["clip"+(indice-1)]) {
                
    _xscale 50;
                
    _yscale 50;
                
    _x = (10*(indice+1));
                
    _y 0;
            }
            
    indice++;
            (
    indice 10) ? mcLoading() : null;
        }
        
    lo.addListener(li);
        
        
    this.createEmptyMovieClip(("clip"+indice),(100+indice));
        
        
    trace("Carica fondo: "+"fondo_"+ (indice+1) +".jpg");
        
        
    lo.loadClip(("fondo_"+ (indice+1) +".jpg"), eval("clip"+indice));
        
        
    li.onLoadProgress = function(targetbytesLoadedbytesTotal){
            var 
    percentuale:Number Math.floor((bytesLoaded/bytesTotal)*100);

            
    _root.loader._xscale percentuale;
            
    _root.txtLoader.text percentuale;
        }
        
        
    li.onLoadComplete = function(target){
            
    _root.loader.removeMovieClip();
            
    _root.txtLoader.removeMovieClip();

            
    trace("completo");
        }
    }
    mcLoading(); 
    ps. non ho verificato le azioni del tuo codice, le ho solo copiate... quindi non so se vanno bene per quello che dovresti ottenere...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    si in effetti avevo già pensato ad una soluzione del genere, in pratica una volta terminato il primo caricamento richiamo dinuovo la funzione che mi carica un'altro swf dandogli un indice dichiarato globale e incrementandolo ogni volta che passa per onLoadInit, quindi simulo un ciclo ma a mano, il problema che ho già creato tutta un'applicazione con un ciclo e mi scocciava mettere mano a tutto per modificare questa cosa.

    Un'altra domanda, ma se io carico un swf chiamato obj1.swf, poi dopo un'altro swf chiamato obj2.swf e poi un'altra volta obj1.swf, come si comporta flash, mi ricarica da 0 l'swf che si chiama obj1.swf o lo prende dalla cache??
    Ciao By Peter_Pan...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    and80 sto provando a fare le modifiche alla mia applicazione secondo le tue indicazioni, però mi viene un dubbio, quando faccio il loadClip, devo indicare anche in che MC voglio inserire questa immagine o questo swf, ma posso dirgli di caricarmelo in libreria e poi lo prendo dalla libreria quando mi serve e lo metto in un MC?? Oppure una volta caricato e inserito in un MC che ad esempio chiamo pippo_1, dopo posso spostare pippo_1 all'interno di un movieclip che si chiama contenitore?

    schema:
    I) carico il file obj1.swf con loadClip e lo inserisco in MC chiamato pippo_1
    II) creo un MC chiamato contenitore
    III) sposto pippo_1 dalla root e lo inserisco in contenitore


    Come si fa???
    Ciao By Peter_Pan...

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    >> Un'altra domanda, ma se io carico un swf chiamato obj1.swf, poi dopo un'altro swf
    >> chiamato obj2.swf e poi un'altra volta obj1.swf, come si comporta flash, mi
    >> ricarica da 0 l'swf che si chiama obj1.swf o lo prende dalla cache??

    una volta sul web il file viene caricato e messo in cache, anche se questa cosa dipende dalle impostazioni del client, ma nella generalità dei casi è così

    >> and80 sto provando a fare le modifiche alla mia applicazione secondo le tue
    >> indicazioni, però mi viene un dubbio, quando faccio il loadClip, devo indicare
    >> anche in che MC voglio inserire questa immagine o questo swf, ma posso dirgli di
    >> caricarmelo in libreria e poi lo prendo dalla libreria quando mi serve e lo metto
    >> in un MC?? Oppure una volta caricato e inserito in un MC che ad esempio chiamo
    >> pippo_1, dopo posso spostare pippo_1 all'interno di un movieclip che si chiama
    >> contenitore?

    no, non puoi fare nè una cosa nè l'altra... il file esterno viene caricato nel clip di assegnazione e se lo vuoi "spostare" lo devi ricaricare in un altro clip
    in alternativa lo puoi rendere invisibile o spostarlo dallo stage modificando le coordinate e poi rimettercelo quando ne hai bisogno

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.