所以,例如,如果你这样做了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 回答