たとえば、stage.addEventListener(MouseEvent.CLICK, onClick);
設定した場合...たとえば 5 秒のクールダウンを設定するにはどうすればよいでしょうか。もう一度クリックできるようになるまで 5 秒待たなければなりませんか? または、少なくとも onClick 関数を実行します。
質問する
532 次
2 に答える
2
オプション1 :
stage.addEventListener(MouseEvent.CLICK, onClick);
private function onClick(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.CLICK, onClick);
setTimeout(function() {
stage.addEventListener(MouseEvent.CLICK, onClick);
}, 5000);
}
オプション #2:
stage.addEventListener(MouseEvent.CLICK, onClick);
var then:int = 0;
private function onClick(e:MouseEvent):void
{
var now:int = getTimer();
if(now - then > 5000) {
// do your thing
then = now;
}
}
オプション #3:
stage.addEventListener(MouseEvent.CLICK, onClick);
var timer:Timer = new Timer(5000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
private function onClick(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.CLICK, onClick);
timer.start();
}
private function onComplete(e:TimerEvent):void
{
stage.addEventListener(MouseEvent.CLICK, onClick);
timer.reset();
}
于 2013-07-27T04:45:25.003 に答える
0
私がこの問題を処理した方法は、グローバル TouchManager を作成することです。私は実際には大域オブジェクトを嫌いますが、場合によっては、大域オブジェクトは問題にうまく対処します。この場合、すべての可能なソースからのすべてのタッチ入力を無効にしたいので、グローバルが理にかなっています。
私の TouchManager には、呼び出し元がタイマーでタッチ可能性を一時停止できるようにする静的関数があります。私の実装では、5 秒のタイムアウトでこの関数を呼び出します。次に、タッチ入力を処理するイベント ハンドラーは、TouchManager を参照し、タッチ処理が現在中断されている場合は、ハンドラーから早期に戻ります。
「何かがマネージャーと呼ばれる場合、あなたはそれを間違っています」という群集をキューに入れます.
于 2013-07-27T21:06:57.240 に答える