Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Cronometro 3 Minuti

  1. #1

    Cronometro 3 Minuti

    Salve ragazzi,
    girovagando per la rete ho trovato il file flash che allego, che serve appunto come cronometro.
    Quello che vorrei sapere, se possibile, è la possibilità di farlo fermare a 3 minuti magari, con un suono che avverta quando sta per scadere il tempo, tipo 10 secondi prima (non proprio necessario ma sarebbe carino).
    Ho provato a modificare qualche cosa (poi rimettendo a posto l'originale) ma non sono molto ferrato in ActionScript e quindi non sono venuto a capo di nulla.

    Grazie a chiunque voglia prestarsi a darmi il suo aiuto.

    Cronometro
    .::LTADM::.

  2. #2
    Nessuno che può darmi delucidazioni?
    .::LTADM::.

  3. #3
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Il cronometro che hai allegato è un tantino obsoleto e si basa sul frameRate del filmato e di conseguenza, se lo implementi in un altro filmato che richiede un frameRate diverso, ad esempio un gioco, avresti problemi di sincronismo e precisione.

    Tempo fa ho avuto modo di studiare su un altro cronometro in ActionScript 3.0, sicuramente più preciso e basato sul tempo reale con la classe Timer e ho aggiunto quella condizione che ti serve per riprodurre un suono negli ultimi 10 secondi e lo stop del cronometro a tempo scaduto.

    Per riprodurre il tutto dovresti creare 3 MovieClip e posizionali sullo stage con i loro nomi_istanza:
    start_button, stop_button e reset_button.

    Crea poi un campo di testo dinamico e dagli il suo nome_istanza: cronometro_txt

    Importi nella libreria il suono che vuoi, spunti l'opzione "esporta per Action Script" e gli dai il suo nome Classe, nel mio esempio l'ho chiamato Drop.

    Nel fotogramma aggiungi il codice:

    Codice PHP:
    import flash.utils.Timer;

    var 
    millesimoC:uint 10;
    var 
    millesimoS:uint 1000;
    var 
    millesimoM:uint 1000 60;
    var 
    millesimoO:uint 1000 60 60;

    var 
    centesimo:uint;
    var 
    secondo:uint;
    var 
    minuto:uint;
    var 
    ora:uint;

    var 
    ora_txt:String;
    var 
    minuto_txt:String;
    var 
    secondo_txt:String;
    var 
    centesimo_txt:String;

    var 
    millesimoTrascorso:uint;
    var 
    copiaDiGetTimer:uint;
    var 
    riferimentoTempo:uint;

    var 
    pausaCronometro:Boolean false;
    var 
    cronometroAttivo:Boolean false;

    var 
    tempo:Timer = new Timer(10,0);

    var 
    dropDrop = new Drop  ;

    listenerPulsanti();

    function 
    listenerPulsanti():void
    {
        
    cronometro_txt.text "00 : 00 : 00 : 00";

        
    tempo.addEventListener(TimerEvent.TIMER,ticTac);
        
    start_button.addEventListener(MouseEvent.CLICK,avviaCronometro);
        
    stop_button.addEventListener(MouseEvent.CLICK,stopTimer);
        
    reset_button.addEventListener(MouseEvent.CLICK,resetCronometro);
    }
    function 
    ticTac(evento:TimerEvent):void
    {
        
    millesimoTrascorso getTimer() - copiaDiGetTimer;

        
    ora Math.floor(millesimoTrascorso millesimoO);
        
    riferimentoTempo millesimoTrascorso ora millesimoO;

        
    minuto Math.floor(riferimentoTempo millesimoM);
        
    riferimentoTempo riferimentoTempo minuto millesimoM;


        
    secondo Math.floor(riferimentoTempo millesimoS);
        
    riferimentoTempo riferimentoTempo secondo millesimoS;

        
    centesimo Math.floor(riferimentoTempo millesimoC);

        if (
    ora 10)
        {
            
    ora_txt "0" ora.toString();
        }
        else
        {
            
    ora_txt ora.toString();
        }
        if (
    minuto 10)
        {
            
    minuto_txt "0" minuto.toString();
        }
        else
        {
            
    minuto_txt minuto.toString();
        }
        if (
    secondo 10)
        {
            
    secondo_txt "0" secondo.toString();
        }
        else
        {
            
    secondo_txt secondo.toString();
        }
        if (
    centesimo 10)
        {
            
    centesimo_txt "0" centesimo.toString();
        }
        else
        {
            
    centesimo_txt centesimo.toString();
        }
        
    cronometro_txt.text ora_txt " : " minuto_txt " : " secondo_txt " : " centesimo_txt;

        
    monitorizzaTimer();
    }
    function 
    monitorizzaTimer():void
    {
        if (
    minuto_txt == "02" && secondo_txt >= "50")
        {
            
    countDown();
        }
        if (
    minuto_txt == "03")
        {
            
    stopTimer();
            
    cronometro_txt.text "00 : 03 : 00 : 00";
        }
    }
    function 
    avviaCronometro(evento:MouseEvent):void
    {
        if (
    cronometroAttivo == false && pausaCronometro == false)
        {
            
    copiaDiGetTimer getTimer();
        }
        else if (
    cronometroAttivo == false && pausaCronometro == true)
        {
            
    copiaDiGetTimer getTimer() - millesimoTrascorso;
        }
        
    tempo.start();

        
    cronometroAttivo true;
    }
    function 
    stopTimer(evento:MouseEvent null):void
    {
        if (
    cronometroAttivo == true)
        {
            
    cronometroAttivo false;
            
    pausaCronometro true;
            
    tempo.stop();
        }
    }
    function 
    resetCronometro(e:MouseEvent):void
    {
        
    tempo.stop();
        
    cronometro_txt.text "00 : 00 : 00 : 00";
        
    millesimoTrascorso 0;
        
    cronometroAttivo false;
        
    pausaCronometro false;
    }
    function 
    countDown():void
    {
        if (
    secondo 50 && centesimo == 10)
        {
            
    drop.play();
        }

    E' settato per riprodurre un suono a ogni secondo a partire dal minuto 02 + 50 secondi e quindi stoppare il timer al minuto 03 tuttavia ... non sempre funziona e a volte ignora completamente le funzioni richieste.
    Il problema è che il timer viene avviato ogni 10 millisecondi per poter gestire nel cronometro anche i decimi di secondo, un tempo troppo breve e a volte il runtime di Flash si perde quella frazione di secondo in cui la condizione per eseguire il codice risulta vera.

    ciao

  4. #4
    Ciao Sleter,

    innanzitutto grazie mille per la risposta e scusami se non ho potuto rispondere prima ma i vari impegni...

    Dunque ho fatto tutto quello che mi hai scritto (Flash CS4) però quando pubblico il filmato e apro il file html mi appaiono i pulsanti e la scritta 00, cliccando poi sui vari pulsanti non accade niente. Sicuramente avrò sbagliato io in qualche cosa, hai qualche idea? Posso postarti il file in questione?

    Grazie in anticipo.
    .::LTADM::.

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.