我有一个可以正常工作的功能,但是如果我增加记录号,就会发生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