Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problema setInterval

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    60

    problema setInterval

    sto facendo un filmato che carica un valore esternamente tramite le flashVars...
    questo valore rappresenta l'intervallo tra un lampeggio e l'altro di un lampadina (la lampadina è un mc di 4 frame).

    Ho utilizzato la funzione setInterval e gli passo la corrispettiva flashVar in millisecondi.
    Il mio problema è che innanzitutto se passo 1000 millisecondi al setInterval non corrisponde quasi mai a un secondo, e poi se lascio andare il filmato l'intervallo di un secondo all'inizio è un intervallo di 7/8 secondi e più va avanti più va veloce fino ad arrivare a molto meno di un secondo (non so dirvi con precisione), perchè???

    sbaglio metodo? funzione? o è impossibile con flash gestire in modo preciso il tempo!?
    codice:
    function processBlink(freqx) {
    	if (blinkyTime==undefined){
    		clearInterval(blinkyTime);
    	}
    	blinkyTime = setInterval(Blink, freqx, freqx);
    }
    var count = 0;
    function Blink(freqx) {
    	if (count == freqx) {
    		clearInterval(blinkyTime);
    		count = 0;
    		_root.vetrox.gotoAndPlay(2); //il lampeggio
    		updateAfterEvent();
    	} else {
    		count++;
    	}
    }
    ho provato anche con il getTimer cercando di dividere il tempo trascorso dall'inizio del filmato per il mio valore di intervallo controllando se tale operazione ha resto o no...
    ma ho un pò di problemi a capire se ha resto o no


  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    60
    UP! :master:

  3. #3

    faccio un ipotesi:

    Sei sicuro che il tuo script non si ripeta più volte durante l'esecuzione?

    setInterval va richiamato UNA volta sola e poi non più perchè poi ci penserà il sistema a richiamarlo! Se lo inneschi più volte ottieni tanti richiami quante sono le volte che verrà eseguita l'istruzione... fino al blocco del sistema per STACK OVERFLOW!

    Vuoi un consiglio? Usa setTimeout al posto di setInterval che vale solo una volta...

    Spero che la mia ipotesi ti aiuti...
    Non sei qui per fare una scelta, la scelta l'hai già fatta...Ora devi comprendere le ragioni per cui l'hai fatta. Non possiamo vedere oltre le scelte che non ci sono chiare. http://www.chicercatrova2000.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    60
    mmm l'ipotesi potrbbe esser giusta anche se credo che prima di aprire un nuovo intervallo pulisco quello prima...

    scusa ma setTimeout io non ce l'ho nella guida, è forse AS3? io sto col CS2...

    cmq grazie

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.