0

タイマーの実行中に repeatCount プロパティをリセットするにはどうすればよいでしょうか。

ゲームでは、カウントダウン タイマーが 120 で実行を開始します。ユーザーが「ヒント」ボタンをクリックすると、時間を 5 秒減らしてカウントダウンの表示を開始する必要があります。

ここでの問題は、カウントダウン タイマーが 5 減りますが、タイマーは "-n*5" まで実行されることです。「n」はヒントボタンがクリックされた回数です。

この問題を解決するには?

4

1 に答える 1

2

これがあなたの問題に対する1つのアプローチです。Timer とは別のタイマー カウントを維持しrepeatCount、TimerComplete イベントが発生したときではなく、別のカウンターが 0 になったときに停止します。

public var t:Timer;
public var count:int = 120;

protected function init(event:FlexEvent):void
{   
    t = new Timer(1000,count);
    t.addEventListener(TimerEvent.TIMER, onTimer);
    t.start();
}

protected function onTimer(evt:TimerEvent):void
{
    count--;
    //display count as time remaining

    if (count <= 0)
    {
        //out of time!
        t.stop();
    }
}

protected function onHint(evt:MouseEvent):void
{
    count-=5;
    //update time or wait for next tick
}
于 2012-05-03T14:04:54.263 に答える