我的类中有一个返回数组的函数。事实是,我在使用时遇到了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()
答案 0 :(得分:2)
我不熟悉actionscript,但看起来像“SkirmishScreen”returnArmy函数递归调用自身,并且永远不会破坏它。这是其他语言中堆栈溢出异常的常见来源。
看起来你不想使用递归。我猜你想要你的“SkirmishScreen”returnArmy函数调用“ScrollList”returnArmy函数,而是“SkirmishScreen”returnArmy调用自己。这是递归。