我有一個可以正常工作的功能,但是如果我增加記錄號,就會發生15秒的超時錯誤。我已經看到暗指將一個函數「分類」,將其分解爲大塊,以便讓處理器再次開始15秒,但似乎無法使其正常工作。 代碼:AS3:如何分解函數以避免15秒超時規則?
startBatch=0;
private function findDupes():void {
var el:Number; //elapsed time variable
timeoutTime = getTimer();
for (var i:int = startBatch; i < numTix; i++) { // numTix = total number of records
for (var j:int = i + 1; j < numTix; j++) {
if (individualTicket[i] == individualTicket[j]) {
// mark duplicate
}
}
el = getTimer() - timeoutTime;
if (el > 1000) {
trace("batched out");
batchOut(i);
return;
}
}
weAreDone();
}
private function batchOut(i:int):void {
updateTB2(i); //attempts to update a textbox and FAILS to do so
trace("Out at # ", i);
if (i < numTix) {
startBatch = i;
findDupes();
}
else {
weAreDone();
}
}
因此,每一秒,其 「批出」,並在新的號碼(startBatch)開始findDupes()函數了。我曾希望這會重置超時錯誤,但相反,我得到一根棍子的垃圾。
任何人都可以指向正確的方向嗎?
您需要檢查內循環中的時間,然後保存外循環的值以處理下一幀的剩餘部分。 – Vesper