var LevelCode:Array = [10,20,30,40,50,60,70,80,...,990,1000];
var Piece0:Timer = new Timer(50, LevelCode[0]);
var Piece1:Timer = new Timer(50, LevelCode[1]);
...
var Piece98:Timer = new Timer(50, LevelCode[98]);
var Piece99:Timer = new Timer(50, LevelCode[99]);
我想同时启动Piece0计时器,Piece1计时器等。
我试过了Piece0+Piece1.start();
,但它没有用。
你们能帮助我吗?
答案 0 :(得分:5)
也许你不需要很多计时器,因为你使用相同的50毫秒计时器。
为什么不直接使用一个计时器并在addEventListener
指定的函数中处理事件?
var myTimer:Timer = new Timer(50);
myTimer.addEventListener(TimerEvent.TIMER, timerElapsed);
myTimer.start();
function timerElapsed(event:TimerEvent):void
{
//handle your levels here
}
答案 1 :(得分:3)
运行
Piece0.start();
Piece1.start();
将在足够接近他们可以解决的门槛的同时启动它们,因此它们将实际上是同一时间。启动计时器不是一个资源密集型过程。
答案 2 :(得分:0)
你不能像这样同时触发定时器触发。
这是一个非常糟糕的实现,您需要考虑重新设计
ActionScript没有线程,因此是异步的。
因此,没有两个计时器事件会同时发生。
它将永远是一个接一个。
你应该遵循vulkanino所做的建议并将所有内容整合到一个电话中。
此外,还有100多个计时器事件是非常多的,您是否可以确定所有100个计时器事件将在您给它们运行的50毫秒内处理?
如果不是,你冒一些“重叠问题”的风险全部取决于你在回调函数中所做的代码。