1

これは単純なコードですが、解決できません..a.buttonをクリックするとタイマーが実行されますが、b.buttonをクリックしてもタイマーは実行されたままです。このタイマーを停止するには?? ありがとう(下手な英語でごめんなさい)

    a.addEventListener(MouseEvent.CLICK, starts);
    function starts(e:MouseEvent)
    {
            time(0);
    }
    b.addEventListener(MouseEvent.CLICK, stops);
    function stops(e:MouseEvent)
    {
            time(1);
    }
    function time(cc)
    {
        var timer:Timer = new Timer(1000,100);
        timer.addEventListener(TimerEvent.TIMER, tmer);
        timer.start();
        function tmer(e:TimerEvent):void
        {
            trace("start");
        }
        if(cc == 1)
        {
            trace("stop");
            timer.stop();
            timer.removeEventListener(TimerEvent.TIMER, tmer);
        }
        cc=0;
    }
4

3 に答える 3

1

代わりにこれを試してください:

var timer:Timer = new Timer(1000,100);

// To verify if timer is running or stopping
timer.addEventListener(TimerEvent.TIMER, tickTock);
function tickTock(e:TimerEvent):void
{
    trace("tick tock");
}

a.addEventListener(MouseEvent.CLICK, starts);
function starts(e:MouseEvent)
{
        time(0);
}

b.addEventListener(MouseEvent.CLICK, stops);
function stops(e:MouseEvent)
{
        time(1);
}

function time(cc)
{
    if(cc == 0)
    {
        trace("start");
        timer.start();
    }
    else if(cc == 1)
    {
        trace("stop");
        timer.stop();
    }
}

または単に:

var timer:Timer = new Timer(1000,100);

// To verify if timer is running or stopping
timer.addEventListener(TimerEvent.TIMER, tickTock);
function tickTock(e:TimerEvent):void
{
    trace("tick tock");
}

a.addEventListener(MouseEvent.CLICK, starts);
function starts(e:MouseEvent)
{
        trace("start");
        timer.start();
}

b.addEventListener(MouseEvent.CLICK, stops);
function stops(e:MouseEvent)
{
        trace("stop");
        timer.stop();
}
于 2013-02-11T02:15:43.757 に答える
1

これを試してください:

a.addEventListener(MouseEvent.CLICK, starts);
function starts(e:MouseEvent)
{
    time(0);
}
b.addEventListener(MouseEvent.CLICK, stops);
function stops(e:MouseEvent)
{
    time(1);
}

var timer:Timer;
function time(cc:int)
{
    if(cc == 0)
    {
        if(!timer)
            timer = new Timer(1000,100);        
        timer.addEventListener(TimerEvent.TIMER, tmer);
        timer.start();
    }   
    else if (cc == 1)
    {
        trace("stop");
        timer.stop();
        timer.removeEventListener(TimerEvent.TIMER, tmer);
    }
}

function tmer(e:TimerEvent):void
{
    trace("start");
}
于 2013-02-11T02:07:20.900 に答える
-1

これは、新しい Timer オブジェクトを 2 回目に作成するためです。

var timer:Timer = new Timer(1000,1000);
function tmer(event:TimerEvent):void{
     trace("The timer is working");
}
timer.addEventListener(TimerEvent.TIMER, tmer);
timer.stop();
 a.addEventListener(MouseEvent.CLICK, starts);
    function starts(e:MouseEvent)
    {
            timer.reset();
            timer.start();
    }
    b.addEventListener(MouseEvent.CLICK, stops);
    function stops(e:MouseEvent)
    {
            timer.stop();
    }
于 2013-02-11T02:10:09.847 に答える