我有一个很大的问题,我的代码从舞台
我已经调用的函数“delayCallFuntions”删除功能:
function delayCallFuntions(delay: int, func: Function) {
var timer: Timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER, func);
timer.start();
}
而且我用这个功能类似下面做2点之间的连接在我的屏幕上:
delayCallFuntions(1, function (e: Event) {timer011(wireColor);});
和功能 “timer011” 正在连接:
function timer011(firstColor: int): void {
wireColor = firstColor;
//GRID is a class
//Path A to B
var PathAB: Grid;
PathAB = new Grid(4, 5, 20, 17, canvas, wireColor);
this.addChild(PathAB);
}
我的问题是: 我有几个的这些功能,如“timer012”,“timer013”,......,他们需要执行一个接一个。 当我离开这个场景再回来时,这些功能仍然有些正在工作,而我需要他们从头开始并逐个去做。
例如:当我回来时,“timer011”正在启动,而“timer016”也在同时完成。
希望有人能帮助我,因为这个问题让我沮丧。
你能解释一下你的程序试图完成什么。听起来你只是想排队延迟链中的一些功能?所以一个人执行,然后1秒钟后,下一个等等。你想要能够停止,如果用户移出场景/框架? – BadFeelingAboutThis
@BadFeeling关于此函数“timer011”,“timer012”等是为了让我的网格中不同单元格之间的不同连接。他们需要根据计时器执行。例如:timer011在100ms后执行,timer012在3000ms后执行直到结束。我希望当用户想要去其他场景时停止它们。 – mazName
您需要保存对初始** Timer **对象的引用,并在不再需要它时将其停止并销毁它。另外,我通常会创建一个字段** destroy:Boolean **并使用** if(destroy)return; **启动方法,所以当我不再需要某些内容并且无法确保其立即处置(如延迟调用,听众等),然后我设置** destroy = true; **来防止这些方法在错误的时间执行。 – Organis