目前我正在整理一个计时器,该计时器应该在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
}
答案 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