Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di ca-j
    Registrato dal
    Jun 2004
    Messaggi
    208

    setInterval e consumo di CPU

    Salve,
    ho 4 azioni che devono essere eseguite una volta sola,
    una dietro l'altra a intervalli regolari.
    Uso questo codice e noto che mi sballa la CPU. Ho letto la pillola di Andr3a,
    ma non trovo una valida alternativa. Potete aiutarmi?
    codice:
                    sistematestata = setInterval(function () {
    		muovi.muovescala(testata,60,67,0,100,100,3);
    		clearInterval(sistematestata);
    		}, 600);
    		sistemafoto = setInterval(function () {
    		muovi.muovescala(foto,60,157,0,100,100,3);
    		clearInterval(sistemafoto);
    		}, 900);
    		sistemagiusx = setInterval(function () {
    		muovi.muovescala_c(giusx,60,434,0,100,100,3);
    		clearInterval(sistemagiusx);
    		}, 1200);
    		sistemagiudx = setInterval(function () {
    		muovi.muovescala(giudx,357,434,0,100,100,3);
    		muovi.muovescala_c(_root.base.masca,500,400,0,550,550,4);
    		clearInterval(sistemagiudx);
    		}, 1500);
    Salud y pesetas... y lo demás son puņetas!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ma la funzione "muovi.muovescala" funziona regolarmente se richiama da sola?

  3. #3
    Utente di HTML.it L'avatar di ca-j
    Registrato dal
    Jun 2004
    Messaggi
    208
    Originariamente inviato da and80
    ma la funzione "muovi.muovescala" funziona regolarmente se richiama da sola?
    si, viene da una classe. le azioni funzionano bene tutte, l'unico problema č la CPU altissima. Credo che i setInterval, una volta azionati, non interrompano il loro ciclo, nonostante ci metta un clearInterval.
    Salud y pesetas... y lo demás son puņetas!

  4. #4
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Non so magari dico una cavolata, ma hai provato a mettere i clearInterval fuori dalle graffe dei setInterval?

  5. #5
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    basta che metti un trace all'interno della funzione chiamata
    e vedi se si ferma o no.

    Spiega cmq cosa vorresti fare e cosa fā effettivamente la funzione
    e su cosa lo fā.
    ...altri 5 anni di purga...

  6. #6
    Utente di HTML.it L'avatar di ca-j
    Registrato dal
    Jun 2004
    Messaggi
    208
    Originariamente inviato da alpeweb
    basta che metti un trace all'interno della funzione chiamata
    e vedi se si ferma o no.

    Spiega cmq cosa vorresti fare e cosa fā effettivamente la funzione
    e su cosa lo fā.
    Ho provato, e in effetti le funzioni non si fermano neanche con
    codice:
    clearInterval(nomefunzione);
    Quello che pretendo č far entrare automaticamente 4 clip differenti nello schermo, uno dietro l'altro a brevissimi intervalli di tempo. Per quello ho deciso di intervallare 4 funzioni che immettono i 4 clip in questione.
    Salud y pesetas... y lo demás son puņetas!

  7. #7
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Mi sa che il problema risiede nelle funzioni che usi...ho provato un semplicissimo esempio:
    codice:
    i=0;
    id=setInterval(function() {trace(i); i++; if(i>10) clearInterval(id);},1000);
    E si ferma esattamente quando i=10 come dovrebbe...

  8. #8
    Utente di HTML.it L'avatar di ca-j
    Registrato dal
    Jun 2004
    Messaggi
    208
    Ho trovato l'errore: tutte le funzioni partono al caricamento di un clip:
    codice:
    _root.mioclip.onEnterFrame = function()	{
                 //azioni con setInterval e clearInterval...
    }
    per quello vengono eseguite in continuazione anche se ci metto un clearInterval.
    Come faccio allora a farle eseguire una volta sola, cioé alla prima lettura del clip?
    Salud y pesetas... y lo demás son puņetas!

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    243
    _root.mioclip.onLoad = function() {
    //azioni con setInterval e clearInterval...
    }

    dovrebbe andare...

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.