减慢递归函数中的循环

时间:2010-05-02 21:05:46

标签: actionscript-3 recursion

我有一个递归函数的难题。本质上我需要在一个重复调用自身的函数(函数)中'减慢'一个for循环; 这是可能的,还是我需要以某种方式提取函数的递归性质?

function callRecursiveFuncAgain(ob:Object):void{
    //do recursive stuff;
    for (var i:int = 0; i < 4; i++) {
        _nextObj=foo
    callRecursiveFuncAgain(_nextObj);
    }
}

3 个答案:

答案 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)

你是认真的吗?如果您的计算机速度较慢,那么您的CPU将拥有更多的负载,然后是一个快速的CPU,它将永远不会在需要良好解决方案的情况下工作。它甚至不是一个糟糕的解决方案。

尝试使用flash.utils包http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/utils/package.html中的setTimeOut。

示例使用:setTimeout(delayedFunction,delay,arguments); 请注意,延迟以毫秒表示。

检查'clearTimeOut()'函数(flash.utils)以在完成后清除setTimeOut。