У меня есть функция в моем классе, которая возвращает массив. Дело в том, что при использовании я получаю ошибку переполнения стека. Важными функциями являются:Переполнение стека во Flash
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));
с army1_ в 8_ инициализируется новым массивом(). Кто-нибудь может помочь?
EDIT: Точная ошибка: Произошла Stack переполнение:
Ошибка: Error # 1023. at SkirmishScreen/returnArmy()
Вы правы в этом проблема. var retArmy: Array = returnArmy (армия_); не имеет условия нарушения, если функция возвращает существующий массив или новый массив, вызов метода returnArmy все еще выполняется в другое время. Это позволит быстро создать stackoverflow вызовов функций. – shaunhusain
Я не считаю, что OP должен использовать для этого рекурсивный вызов функции, это может быть просто цикл. – shaunhusain
SkrimishScreen/returnArmy называет себя ошибкой. – shaunhusain