Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [MX 2004] ripost Pausare un ciclo for

    Ciao come posso fare per pausare un ciclo for?
    Ovvero ad ogni giro voglio che resti fermo tot tempo ...

    Questo è quello che ho già:

    codice:
    var maxOr = 22;
    var maxVer = 4;
    var num = 1;
    
    for (a=0; a<=maxOr; a++) {
    	for (b=0; b<=maxVer; b++) {
    		_root.maschera.mask_mc.duplicateMovieClip("ball"+num, num);
    		_root.maschera["ball"+num]._alpha = 100;
    		_root.maschera["ball"+num]._x = (a*28)+5;
    		_root.maschera["ball"+num]._y = (b*28)+2;
    		num++;
    	}
    }
    Poi ho aggiunto

    codice:
    var pausa = 500;
    var inizio = getTimer();
    Ma non so come far girare l' if nel ciclo for ...

  2. #2
    Ok arrivato a questo punto ho creato questo ma mi duplica solo quando il ciclo è a 99, avvero vedo solamente l' ultimo ...

    codice:
    var maxOr = 22;
    var maxVer = 4;
    var num = 1;
    var pausa = 500;
    var inizio = getTimer();
    //if ((getTimer()-inizio) > pausa)
    for (a=0; a<=maxOr; a++) {
    	for (b=0; b<=maxVer; b++) {
    		_root.onEnterFrame = function(){
    			if ((getTimer()-inizio) > pausa){
    				_root.maschera.mask_mc.duplicateMovieClip("ball"+num, num);
    				_root.maschera["ball"+num]._alpha = 100;
    				_root.maschera["ball"+num]._x = (a*28)+5;
    				_root.maschera["ball"+num]._y = (b*28)+2;
    				num++;
    			}
    		}
    	}
    }
    Penso di esserci quasi ma avrei bisogno di una mano ancora

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1,037
    ma il pause vuoi per il ciclo esterno(for (a=0; a<=maxOr; a++)) o a quello dentro (for (b=0; b<=maxVer; b++))?

  4. #4
    io vorrei che ogni volta che duplica poi si ferma per 500 millisecondi ...

  5. #5
    il fatto è che anche se pausi il ciclo for non avrai lo stesso il risultato che vuoi tu in quanto i risultati li vedi alla fine dell'esecuzione del codice (comprese le pause)!

    La duplicazione invece la fai in contemporanea, assegni un intervallo progressivo (0, 500,1000 ....)ai tuoi clip e sull'onLoad dei clip duplicati setti un setInterval con l'intervallo settato precedentemente che ti fa andare il clip ad esempio a _visible=true
    Tu non vedrai nessuna cosa
    al mondo
    maggior di Roma...
    Io su Flashkit.com

  6. #6
    No scusa falcao ma no ho ben capito, il VB esiste sleep che ferma anche i cicli for per quanto tempo vuoi tu ..

    Comunque ...

    codice:
    var maxOr = 22;
    var maxVer = 4;
    for (a=0; a<=maxOr; a++) {
    	for (b=0; b<=maxVer; b++) {		_root.maschera.mask_mc.duplicateMovieClip("ball"+num, num);
    	_root.maschera["ball"+num]._alpha = 100;
    	_root.maschera["ball"+num]._x = (a*28)+5;
    	_root.maschera["ball"+num]._y = (b*28)+2;
           _root.maschera["ball"+num].intervalo = 500*i
    	num++;
    	}
    }
    Ok ma come faccio a fare il resto sull' onLoad??

    [/code]

  7. #7
    anche se pausi il ciclo (ma in realtà si potrebbe fare con un setInterval) flash non ti fa vedere i risultati fino a quando non è terminato... in pratica il codice sta su un frame... quindi tu nella riproduzione di un unico frame non puoi visualizzare più cambiamenti dello stage... hai capito ora?

    Puoi fare ad esempio così nel primo frame del clip duplicato:

    this.ID=setInterval(this,"swapVisible",this.interv allo);
    this.swapVisible=function(){
    this._visible=1;
    clearInterval(rhis.ID);
    }

    nella duplicazione però setta _visible=0; altrimenti non vedi il cambiamento

    Tu non vedrai nessuna cosa
    al mondo
    maggior di Roma...
    Io su Flashkit.com

  8. #8
    raffaeu posso chiederti perche' scrivi spesso MX 2004 nel topic ?


    cmq la soluzione di falcao col setInterval credo sia la migliore, il VB non so come diavolo fa gestire ste pause, anche il php ha sleep ma finche non smette di dormire vai in sleep pure tu, non vedi niente



    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Perchè credevo che prototype e classi fossero gestiti in un altro modo in MX 2004.

    Adesso faccio le prove, comunque ho capito il discorso, il codice di un frame in AS viene eseguito completamente, pensavo di pausare i vari 'loop' del ciclo for.


  10. #10
    Allora nel clip ball duplicato nel primo key ho messo il tuo script, calcola che il clip è composto da un motion di 15 frame()

    codice:
    this.ID=setInterval(this,"swapVisible",this.intervallo); 
    this.swapVisible=function(){ 
    this._visible=1; 
    clearInterval(rhis.ID); 
    }
    Ora nella funzione ho aggiunto

    codice:
    _root.maschera["ball"+num]._alpha = 100;
    _root.maschera["ball"+num].ID = 100*a;
    _root.maschera["ball"+num]._visible = 0;
    _root.maschera["ball"+num]._x = (a*28)+5;
    Non da' errore ma non si vedono, quando li chiamo li devo rendere visibili??

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.