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

    Controllo del tempo sulle azioni

    Ciao ragazzi,
    sono 2 giorni che spulcio questo forum ma non ho trovato risposta al mio dilemma.
    Ho un counter, che a tempi regolari, ovvero ogni minuto deve far succedere qualcosa.

    ho impostato il counter, con questi parametri al primo frame
    // Inserire la tempistica del counter da utilizzare
    // set seconds
    /:sec = 59;
    // seto minutes
    /:min = 46;
    // seto hour
    /:hour = 00;
    timernow = getTimer();
    xtimer = 1;
    Nel secondo frame ho messo questo:
    timer = (getTimer()-timernow);
    if (Number(timer)>Number((950*xtimer))) {
    set("/:sec", (/:sec-1));
    xtimer = (Number(xtimer)+1);
    }
    if ((Number(length(/:sec))<2)) {
    /:sec = "0"+(/:sec);
    }
    if ((Number(/:sec)<00)) {
    set("/:min", /:min-1);
    /:sec = 59;
    }
    if ((Number(length(/:min))<2)) {
    /:min = "0"+(/:min);
    }

    if ((Number(/:min)<00)) {
    set("/:hour", /:hour-1);
    /:min = 59;
    }
    if ((Number(length(/:hour))<2)) {
    /:hour = "0"+(/:hour);
    }
    A questo punto se richiamo fisicamente un determinato minuto, riesco a fare tutto quello che voglio, ma vorrei riuscire a trovare il modo creare un "ciclo" che mi permetta di far partire un MC ad ogni minuto.

    Del tipo: se i secondi trascorsi sono 60 allora fa questa cosa

    Non posso utilizzare il SetInterval, perchè a lungo andare perde secondi e si discosta dal tempo del counter.

    Un grazie caloroso e spero di essere stata chiara!
    ************************
    Vacanze alle seychelles
    ************************

  2. #2
    Vi chiedo solo una cortesia: mi dite se è possibile farlo o se invece è impossibile, così smetto di cercare una soluzione... sono sfinita ?
    Vi ringrazio molto.
    ************************
    Vacanze alle seychelles
    ************************

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per le verifiche che ho fatto, il setInterval perde il tempo solo se il framerate è impostato basso e non ha una corrispondenza "intera" al secondo, in pratica con framerate a 60 non dovresti avere perdita

  4. #4
    Il setInterval non è affidabile, alla lunga, indipendetemente dal framerate.

    Fammi capire bene....tu vuoi capire se riesci con una funzione a capire in quale minuto ti trovi durante la riproduzione dell'swf per poter, a seconda del minuto, lanciare movielcip diversi?

    In questo caso:


    codice:
    var timer:Number = new Number();
    var seconds:Number = new Number();
    var minutes:Number = new Number();
    var remaining:Number = new Number();
    var hours:Number = new Number();
    _root.onEnterFrame = function() {
    	_level0.timer = Math.round(getTimer()/1000);
    	_level0.hours = Math.floor(_level0.timer/3600);
    	_level0.remaining = _level0.timer%3600;
    	trace(_level0.remaining);
    	_level0.minutes = Math.floor(_level0.remaining/60);
    		trace(_level0.remaining);
    	_level0.remaining = _level0.remaining%60;
    	_level0.seconds = _level0.remaining;
    	trace("TOTAL: "+_level0.timer+" - HOURS: "+_level0.hours+" - MINUTES: "+_level0.minutes+" - SECONDS: "+_level0.seconds);
    };
    
    I trace ti indicano ore, minuti e secondi attuali dalla partenza del filmato.....spero di aver capito bene....saluti e baci.

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    qualsiasi elemento di gestione del tempo in flash e sul browser non è affidabile alla lunga, i fattori che influiscono nella gestione delle azioni sono molteplici, in ogni caso il setInterval è sicuramente più affidabile a framerate più alto

    ps. meglio evitare l'enterFrame sulla _root

  6. #6
    Originariamente inviato da giegi
    Il setInterval non è affidabile, alla lunga, indipendetemente dal framerate.

    Fammi capire bene....tu vuoi capire se riesci con una funzione a capire in quale minuto ti trovi durante la riproduzione dell'swf per poter, a seconda del minuto, lanciare movielcip diversi?
    Giegi, esattamente quello che vorrei!
    Mi sto guardando il tuo script... calma e coraggio, perchè non ci capisco nulla, ma alla fine ci arrivo!
    Ti ringrazio conunque in anticipo, perchè sono sicura che mi hai salvato da qualche giorno di insonnia .

    Comunque proverò anche il framerate a 60... tanto che ci sono le provo tutte.
    Grazie mille!!
    ************************
    Vacanze alle seychelles
    ************************

  7. #7
    Originariamente inviato da and80
    qualsiasi elemento di gestione del tempo in flash e sul browser non è affidabile alla lunga, i fattori che influiscono nella gestione delle azioni sono molteplici, in ogni caso il setInterval è sicuramente più affidabile a framerate più alto

    ps. meglio evitare l'enterFrame sulla _root

    Aspetta... non mi impanicare
    Deve funzionare solo 3 ore ad intervalli di 5 minuti... magari non mi da problemi o almeno lo spero...
    ************************
    Vacanze alle seychelles
    ************************

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da mjj82
    Aspetta... non mi impanicare
    Deve funzionare solo 3 ore ad intervalli di 5 minuti... magari non mi da problemi o almeno lo spero...
    no certo volevo solo dire che sarebbe meglio spostare ad un clip preposto l'onEnterFrame senza impegnare la _root con il codice,
    visto che nello script ci sono tutti i percorsi assoluti, dovrebbe bastare modificare in questo modo

    codice:
    var timer:Number = new Number();
    var seconds:Number = new Number();
    var minutes:Number = new Number();
    var remaining:Number = new Number();
    var hours:Number = new Number();
    var mc:MovieClip = this.createEmptyMovieClip("mc", 1);
    mc.onEnterFrame = function() {
    	_level0.timer = Math.round(getTimer()/1000);
    	_level0.hours = Math.floor(_level0.timer/3600);
    	_level0.remaining = _level0.timer%3600;
    	trace(_level0.remaining);
    	_level0.minutes = Math.floor(_level0.remaining/60);
    		trace(_level0.remaining);
    	_level0.remaining = _level0.remaining%60;
    	_level0.seconds = _level0.remaining;
    	trace("TOTAL: "+_level0.timer+" - HOURS: "+_level0.hours+" - MINUTES: "+_level0.minutes+" - SECONDS: "+_level0.seconds);
    };

  9. #9
    Originariamente inviato da mjj82
    Giegi, esattamente quello che vorrei!
    Mi sto guardando il tuo script... calma e coraggio, perchè non ci capisco nulla, ma alla fine ci arrivo!
    Ti ringrazio conunque in anticipo, perchè sono sicura che mi hai salvato da qualche giorno di insonnia .

    Comunque proverò anche il framerate a 60... tanto che ci sono le provo tutte.
    Grazie mille!!

    Prego.
    Cmq, per il framerate a 60 puoi anche evitare di tentare......

  10. #10
    Originariamente inviato da and80
    qualsiasi elemento di gestione del tempo in flash e sul browser non è affidabile alla lunga, i fattori che influiscono nella gestione delle azioni sono molteplici, in ogni caso il setInterval è sicuramente più affidabile a framerate più alto

    ps. meglio evitare l'enterFrame sulla _root

    Ok, sarebbe meglio creare una classe che si occupa di tutto e che ritorna solo valori numerici....
    Non volevo fare polemica.
    Semplicemente intendevo che tra i metodi di gestione del tempo, il setInterval è il meno dispendioso per la cpu, ma sicuramente il meno affidabile. Tanto tempo fa dovevo fare un player multimediale che tenesse traccia dei decimi di secondo per sincronizzare audio e foto, e dopo varie prove, il setInterval era quello che garantiva la minore affidabilità....

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 © 2026 vBulletin Solutions, Inc. All rights reserved.