我有一個很大的問題,我的代碼從舞臺
我已經調用的函數「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