Actionscript 3 VerifyError:错误#1023:ArrayCollection的addItem上发生堆栈溢出

Actionscript 3 VerifyError:错误#1023:ArrayCollection的addItem上发生堆栈溢出,actionscript-3,apache-flex,stack-overflow,Actionscript 3,Apache Flex,Stack Overflow,选择ColorDataGrid中的一个“开发者行”框时会发生此错误,该框依次调用ExtractProjectPopup.mxml中的updateDeveloper()方法,如下所示 public function updateDeveloper():void { developerIndexArray:ArrayCollection = new ArrayCollection(); var devObject:Object = new Object(); var Obje

选择ColorDataGrid中的一个“开发者行”框时会发生此错误,该框依次调用ExtractProjectPopup.mxml中的updateDeveloper()方法,如下所示

public function updateDeveloper():void
{
    developerIndexArray:ArrayCollection = new ArrayCollection();
    var devObject:Object = new Object();
    var ObjectString:String = developerIndexArray.toString();
    if(developerGrid.selectedIndex >= 0)
    {
        var developer:ExtractPopUpDeveloperRow = this.developerRows.getItemAt(developerGrid.selectedIndex) as ExtractPopUpDeveloperRow;
        developer.isPartOfProject = ! developer.isPartOfProject;
        if(developer.isPartOfProject)
        {   
        devObject.index = developerGrid.selectedIndex;
        viewResumeButton.visible = true;
        developerIndexArray.addItem(devObject);     
        }
    }
}
我目前正在使用Flex SDK 3.6,我知道已知的解决方案(添加跟踪语句)在这种情况下没有真正的帮助。我怀疑当我将对象添加到ArrayCollection时会发生溢出,但我真的不知道为什么

一定有某种递归迫使溢出,我遗漏了什么吗

以下是导致溢出的堆栈跟踪:

[mpt.project::ExtractProjectPopUp~[O] Object~[A] int[I] int[I]  mpt.vo.extraction::ExtractPopUpDeveloperRow[O] String[S] int[I]]   {mpt.project::ExtractProjectPopUp~[O]} (mx.collections::ArrayCollection[O] int[I])
60:callproperty getItemAt 1
                   [mpt.project::ExtractProjectPopUp~[O] Object~[A] int[I] int[I]  mpt.vo.extraction::ExtractPopUpDeveloperRow[O] String[S] int[I]]  {mpt.project::ExtractProjectPopUp~[O]} (Object[A])
64:getlex 7044
                   [mpt.project::ExtractProjectPopUp~[O] Object~[A] int[I] int[I] mpt.vo.extraction::ExtractPopUpDeveloperRow[O] String[S] int[I]] {mpt.project::ExtractProjectPopUp~[O]} (Object[A] mpt.vo.extraction::ExtractPopUpDeveloperRow$[O])
67:astypelate
                   [mpt.project::ExtractProjectPopUp~[O] Object~[A] int[I] int[I] mpt.vo.extraction::ExtractPopUpDeveloperRow[O] String[S] int[I]] {mpt.project::ExtractProjectPopUp~[O]} (mpt.vo.extraction::ExtractPopUpDeveloperRow[O])
68:coerce mpt.vo.extraction::ExtractPopUpDeveloperRow
                   [mpt.project::ExtractProjectPopUp~[O] Object~[A] int[I] int[I] mpt.vo.extraction::ExtractPopUpDeveloperRow[O] String[S] int[I]] {mpt.project::ExtractProjectPopUp~[O]} (mpt.vo.extraction::ExtractPopUpDeveloperRow[O])
71:dup
                   [mpt.project::ExtractProjectPopUp~[O] Object~[A] int[I] int[I] mpt.vo.extraction::ExtractPopUpDeveloperRow[O] String[S] int[I]] {mpt.project::ExtractProjectPopUp~[O]} (mpt.vo.extraction::ExtractPopUpDeveloperRow[O] mpt.vo.extraction::ExtractPopUpDeveloperRow[O])
72:dup

Warning: Failed to parse corrupt data.
VerifyError: Error #1023: Stack overflow occurred.

at mpt.project::ExtractProjectPopUp/__developerGrid_click()

感谢您的帮助。

奇怪的是,通过在语句后添加一个空跟踪语句,问题得到了解决

var developer:ExtractPopUpDeveloperRow = this.developerRows.getItemAt(developerGrid.selectedIndex) as ExtractPopUpDeveloperRow;

这不是一个解决方案,只是一个变通办法

从堆栈的角度来看,我甚至不认为它能到达
developerIndexArray.addItem
。它似乎是关于
this.developerRows.getItemAt
。还有一个后期绑定,如
astypelate
所述,它可以创建递归,如
72:dup
所示。尽管如此,如果不看看
developerRows
成员和
ExtractPopUpDeveloperRow
类到底是什么,我真的不知道。此外,您的AS3似乎是一个片段(即,它具有神秘变量的不完整性),尽管您没有另外描述。