タイマーの実行中に repeatCount プロパティをリセットするにはどうすればよいでしょうか。
ゲームでは、カウントダウン タイマーが 120 で実行を開始します。ユーザーが「ヒント」ボタンをクリックすると、時間を 5 秒減らしてカウントダウンの表示を開始する必要があります。
ここでの問題は、カウントダウン タイマーが 5 減りますが、タイマーは "-n*5" まで実行されることです。「n」はヒントボタンがクリックされた回数です。
この問題を解決するには?
タイマーの実行中に repeatCount プロパティをリセットするにはどうすればよいでしょうか。
ゲームでは、カウントダウン タイマーが 120 で実行を開始します。ユーザーが「ヒント」ボタンをクリックすると、時間を 5 秒減らしてカウントダウンの表示を開始する必要があります。
ここでの問題は、カウントダウン タイマーが 5 減りますが、タイマーは "-n*5" まで実行されることです。「n」はヒントボタンがクリックされた回数です。
この問題を解決するには?
これがあなたの問題に対する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
}