Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    178

    Ciclo for con setInterval

    Ciao a tutti

    Sto usando un ciclo for per richiamare 10 movieclip dalla libreria con un attachMovie

    il codice è:

    codice:
    for(i=1; i<=10 ; i++){
    _level0.attachMovie("singolo_lista", "singolo_lista"+i, i);
    eval("_level0.singolo_lista"+i)._y = (eval("_level0.singolo_lista"+i)._height+5)*(i-1);
    }
    E' funziona alla grande.
    Ora vorrei sapere come applicare un set Interval per fare in modo che l'attachMovie di ogni singolo movie dalla libreria avvenga con intervalli di tempo di 1/2secondo l'uno dall'altro, e non tutti insieme di botto!

    Come faccio!
    Grazie a tutti!
    Iohannes

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    del ciclo salvi solo il codice interno e attivi subito il setInterval in questo modo

    Codice PHP:
    var 1;
    var 
    intID setInterval(function(){
        
    _level0.attachMovie("singolo_lista""singolo_lista"+ii);
        eval(
    "_level0.singolo_lista"+i)._y = (eval("_level0.singolo_lista"+i)._height+5)*(i-1);
        
    i++;
        if(
    10){
            
    clearInterval(intID);
        }
    }, 
    500); 

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Mi permetto di consigliarti di usare un onEnterFrame function() e settare i tempi direttamente dentro li. Cosi viene più lineare e facile (che poi non è vero perchè dipende uno come ragiona ).

    Provo a scriverti un esempio:
    codice:
    // contatore frame
    __f = 0;
    // intervallo (in frames) tra un attach e l'altro
    __interval = 60;
    // contatore di istanze
    i=1;
    // numero istanze
    maxi = 10;
    
    onEnterFrame = function()
    {
    	if(__f == __interval)
    	{
    		_level0.attachMovie("singolo_lista", "singolo_lista"+i, i);
    		eval("_level0.singolo_lista"+i)._y = (eval("_level0.singolo_lista"+i)._height+5)*(i-1);
    		i++;
    		__f = 0;
    	}
    	
    	if(i <= maxi)
    	{
    		__f++;
    	}
    }
    Spero di non aver scritto cavolate, ma cmq il concetto è quello.


  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    178
    Grazie And80! Funzia alla grande!

    Sei un mito!
    Iohannes

  5. #5
    ciao ragazzi anch'io ho lo stesso problema con la seguente funzione. potete dirmi cosa c'è che non va?
    grazie mille,
    Dav aka Azote

    codice:
    // Lista label
    var menu:Array = ["LINK1","LINK2","LINK3"];
    
    // Spazio in pixel tra le label
    var spazio = 0;
    var defaultX = 85;
    var defaultY = 45;
    
    // Nome clip istanza in libreria
    var istanza = "bottone"; 
    
    function menuArray(){
    
    //for (i in menu) {
    var depth:Number = _root.getNextHighestDepth();
    istanzapiu = istanza+i;
    attachMovie(istanza, istanzapiu, depth);
    var newY:Number = i * (_root[istanzapiu]._height + spazio);
    attachMovie(istanza, istanzapiu, depth);
    setProperty(istanzapiu, _y, newY + defaultY);
    setProperty(istanzapiu, _x, defaultX);
    _root[istanzapiu].etichetta = menu[i];
    
    // Azioni bottoni
    _root[istanzapiu].basebottone.onRelease = function () {
    pagina = this._parent.etichetta;
    _root.gotoAndStop(pagina);
    trace ("Label pagina: "+ pagina);
    }
    } 
    
    
    //}
    
    // Temporizzazione funzione menuArray()
    for (i in menu) {
    var intID = setInterval(menuArray(), 5000);
    }

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.