Flash上​​的堆栈溢出

时间:2012-06-08 17:28:45

标签: actionscript-3 flash

我的类中有一个返回数组的函数。事实是,我在使用时遇到了Stack Overflow错误。重要的功能是:

ScrollList / returnArmy

    public function returnArmy ( army:int ):Array
    {
        var returnVar:Array;

        if( army == 0 ) returnVar = army1_;
        else if( army == 1 ) returnVar = army2_;
        else if( army == 2 ) returnVar = army3_;
        else if( army == 3 ) returnVar = army4_;
        else if( army == 4 ) returnVar = army5_;
        else if( army == 5 ) returnVar = army6_;
        else if( army == 6 ) returnVar = army7_;
        else if( army == 7 ) returnVar = army8_;
        else returnVar = new Array;

        return returnVar;
    }

SkirmishScreen / returnArmy

    public function returnArmy ( army_:int ):Array
    {
        var retArmy:Array = returnArmy( army_ );
        return retArmy;
    }

使用

在循环中调用SkirmishScreen / returnArmy
    screensAR_[3] = new PlayScreen( stage, screensAR_[2].returnArmy( 0 ) );

使用新的Array()初始化army1_到8_。 有人可以帮忙吗?

编辑:确切的错误是:

错误:错误#1023:发生堆栈溢出。     在SkirmishScreen / returnArmy()

1 个答案:

答案 0 :(得分:2)

我不熟悉actionscript,但看起来像“SkirmishScreen”returnArmy函数递归调用自身,并且永远不会破坏它。这是其他语言中堆栈溢出异常的常见来源。

看起来你不想使用递归。我猜你想要你的“SkirmishScreen”returnArmy函数调用“ScrollList”returnArmy函数,而是“SkirmishScreen”returnArmy调用自己。这是递归。