Flex Temporizador ejemplo

Estoy tratando de utilizar el temporizador en flex. Me refería a este ejemplo : Temporizador : blog.flexexamples.com.

Aquí es lo que quiero lograr:

Quiero iniciar el temporizador, mostrando minutos transcurrido desde temporizador
empezado. Debe ser independiente de la región en la que están.(
independientemente de cualquiera que sea la zona en que están, temporizador debería funcionar bien en
cada zona).

Temporizador debe continuar, a menos que algún botón es pulsado, donde quiero
mostrar el tiempo transcurrido en minutos, en un Cuadro de Alerta y, a continuación, el temporizador debe comenzar de nuevo desde 0 en adelante.

Traté de mi ejemplo, pero no está funcionando adecuadamente.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout="vertical"
                verticalAlign="middle"
                backgroundColor="white"
                creationComplete="init()">

    <mx:Script>
        <![CDATA[
            import flash.events.TimerEvent;
            import flash.utils.Timer;

            import mx.controls.Alert;
            private const TIMER_INTERVAL:Number = 10;

            private var baseTimer:int;

            private var t:Timer;

            private function init():void {
                t = new Timer(TIMER_INTERVAL);
                t.addEventListener(TimerEvent.TIMER, updateTimer);
            }

            private function updateTimer(evt:TimerEvent):void {
                var d:Date = new Date(getTimer()-baseTimer);
                var min:String = (d.minutes).toString();
                var sec:String = (d.seconds).toString();

                counter.text = String(min+"."+sec);
            }

            private function startTimer():void {

                baseTimer = getTimer();
                t.start();
            }

            private function stopTimer():void {
                t.stop();
            }
        ]]>
    </mx:Script>

    <mx:ApplicationControlBar dock="true">
        <mx:Button label="Start timer" click="startTimer()" />
        <mx:Button label="Stop timer" click="stopTimer()" />
    </mx:ApplicationControlBar>

    <mx:Label id="counter" fontSize="96" />
</mx:Application>

Puede que alguien le diga cuál es el problema ? Cómo resolverlo ?

EDICIÓN :
Si puedo ejecutar este ejemplo en mi pc, el temporizador comienza a partir de 30.0 hasta que se llegue a 59.59 y, a continuación, se vuelve a 0.0 y luego comienza de nuevo……Ahora Lo que quiero es empezar de 0.0 y seguir contando los minutos hasta que alguna clic en el botón … y esto debería funcionar en cualquier momento las zonas de

  • Usted debe ser el que diga cuál es el problema! ¿Qué va mal? ¿Cómo podemos ayudar? «No está funcionando» realmente no da ninguna pista.
  • Si puedo ejecutar este ejemplo en mi pc, el temporizador comienza a partir de 30.0 hasta que se llegue a 59.59 y, a continuación, se vuelve a 0.0 y luego comienza de nuevo……Lo que quiero es empezar de 0.0 y seguir contando los minutos hasta que alguna clic en el botón … y esto debería funcionar en cualquier momento las zonas de
InformationsquelleAutor tomjerry | 2011-12-09

2 Kommentare

  1. 6

    El caso de uso, no requiere el uso de Date() y/o zonas horarias. Todo lo que necesitas hacer es contar los segundos transcurridos, y el Temporizador le ofrece una manera fácil de hacer esto: Establecer el intervalo de 1000 (Un cargo por segundo) y el uso Timer.currentCount. Entonces todo lo que necesita hacer es calcular los minutos y los segundos para mostrar. A continuación es una aplicación que usted puede incorporar en su mxml:

    private function init():void {
        t = new Timer(1000);
        t.addEventListener(TimerEvent.TIMER, updateTimer);
    }
    
    //it's good practice to separate event handler from functional method
    private function updateTimer(evt:TimerEvent):void {
        display (t.currentCount);
    }
    
    private function display ( count : int ) : void {
        var minutes : int = count / 60; //divide by 60 to get the minutes
        var seconds : int = count % 60; //use modulo operator to get the "rest"
        var min : String = minutes < 10 ? "0" + minutes : "" + minutes; //add leading zero if necessary
        var sec : String = seconds < 10 ? "0" + seconds : "" + seconds;
    
        counter.text = min+":"+sec; //no need to cast to String if you use "" + something
    }
    
    private function startTimer():void {
        t.start();
    }
    
    private function stopTimer():void {
        t.stop();
        t.reset();
        display (0); //reset the display
    }
    • En este trabajo, independientemente de las zonas de tiempo ? Me refiero a que no hay problemas con el UTC aquí ?
    • y cuando se va más allá de los 60 minutos, yo quiero que siga mostrando el tiempo en minutos.. como esta .. 61:15 .. 61 min, 15 seg transcurrido ..
    • Tanto es válido para este ejemplo: no es UTC cuando simplemente contar el número de veces que el temporizador se llama. Y ya que no hay «horas», los minutos va a seguir aumentando.
    • gracias por tu respuesta 🙂 … estoy ejecutando el código .. Va a aceptar su respuesta una vez que no hay problema viene .. de todos Modos, ya +1 de mi parte para esta respuesta ..
  2. 0

    El ejemplo que se está refiriendo es hacer las cosas un poco complicadas para su problema en particular. Aquí está un pequeño ejemplo de cómo usted puede mostrar a los minutos con un simple Timer:

    private const TIMER_INTERVAL:Number = 1000*60;
    private var t:Timer;
    
    private function init():void {
        t = new Timer(TIMER_INTERVAL);
        t.addEventListener(TimerEvent.TIMER, updateTimer);
        counter.text = "0";
    }
    
    private function updateTimer(evt:TimerEvent):void {
    
        counter.text = String(t.currentCount);
    }
    
    private function startTimer():void {
    
        t.start();
    }
    
    private function stopTimer():void {
    
        t.stop();
    
        //if you want the timer to reset make sure to reset your text also
        /*
        t.reset();
        counter.text = "0";
        */
    }
    • Me encontré con su código .. pero, todavía, después de 5 minutos .. se está mostrando 0 solo .. tiempo que no cambia ..
    • y cuando se va más allá de los 60 minutos, yo quiero que siga mostrando el tiempo en minutos.. como esta .. 61:15 .. 61 min, transcurrido 15 segundos
    • Su TIMER_INTERVAL es de 60 * 1000 milisegundos == 1 minuto.
    • En el OP él está pidiendo showing minutes elapsed así que por eso me optar por la forma más sencilla. Su solución es más completa (de ahí mi +1) (@tomjerry cuando pruebo el código que puede conseguir más allá de los 5 minutos btw)

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea