20秒后定时器复位,但随机调用AS3功能

时间:2017-06-21 06:23:22

标签: actionscript-3 timer

目前我正在整理一个计时器,该计时器应该在20秒内随机时刻向舞台添加一个动画片段,但它必须计算整整20秒然后重置。

现在这样我可以让计时器倒计时一段随机时间最多20秒,但它会在随机时间之后重复。所以我想到了一个20000的定时器延迟 - 无论是随机时间+ 20000产生的。但是,我无法想出一种参考产生时间的方法。 有谁知道如何实现这一目标?或者可能是另一种方法的解决方法?

提前致谢!

var treasureclip:MovieClip= new xClip;

var treasureTimer = new Timer(Math.random() * 20000);
treasureTimer.addEventListener("timer", placeTreasure);
treasureTimer.start();

function placeTreasure(evt:TimerEvent):void {
addChild(treasureclip);
Timer(evt.currentTarget).delay = 20000 - //something
}

1 个答案:

答案 0 :(得分:1)

import flash.utils.setTimeout;

var treasureclip:MovieClip= new xClip;
  /*to check it adds movieClip uncomment this and comment previous
  var treasureclip:MovieClip= new MovieClip;
  with(treasureclip.graphics)
  {
      beginFill(0);
      drawRect(0,0,50,50);
  }*/

var timeout:uint;

startTimeout();
setInterval(startTimeout, 20000);

function startTimeout():void
{
    timeout = setTimeout(placeTreasure, int(20000 * Math.random()));
}

function placeTreasure():void {
    addChild(treasureclip);
}

//Don't forget to kill timeout with clearTimeout(timeout) to avoid memory leaks