我有一个递归函数的难题。本质上我需要在一个重复调用自身的函数(函数)中'减慢'一个for循环; 这是可能的,还是我需要以某种方式提取函数的递归性质?
function callRecursiveFuncAgain(ob:Object):void{
//do recursive stuff;
for (var i:int = 0; i < 4; i++) {
_nextObj=foo
callRecursiveFuncAgain(_nextObj);
}
}
答案 0 :(得分:1)
尝试setTimeout
function callRecursiveFuncAgain(ob:Object):void{
// do recursive stuff
var i = 0;
function callNext()
{
if(i++ < 4)
{
_nextObj=foo;
callRecursiveFuncAgain(_nextObj);
setTimeout(callNext, 1000);
}
}
callNext();
}
答案 1 :(得分:0)
你应该使用一些等待一段时间的功能或另一个会占用大量CPU的功能,因此会降低你的递归功能。另一种方法是使用调试器和断点。
答案 2 :(得分:0)
尝试使用flash.utils包http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html中的setTimeOut。
示例使用:setTimeout(delayedFunction,delay,arguments); 请注意,延迟以毫秒表示。
检查'clearTimeOut()'函数(flash.utils)以在完成后清除setTimeOut。