Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex 3:将一个arrayCollection设置为另一个会使应用程序暂停_Apache Flex_Arraycollection - Fatal编程技术网

Apache flex Flex 3:将一个arrayCollection设置为另一个会使应用程序暂停

Apache flex Flex 3:将一个arrayCollection设置为另一个会使应用程序暂停,apache-flex,arraycollection,Apache Flex,Arraycollection,我将继续,对整个功能进行C/p,以确保你们能够看到正在发生的一切: public function directorsPrepsToShow():void { var tempDPrepsAC:ArrayCollection = new ArrayCollection; var dprepSD:Date = new Date; var dprepED:Date = new Date; var viewSD:Date = rightDate(startViewDat

我将继续,对整个功能进行C/p,以确保你们能够看到正在发生的一切:

public function directorsPrepsToShow():void
{
    var tempDPrepsAC:ArrayCollection = new ArrayCollection;
    var dprepSD:Date = new Date;
    var dprepED:Date = new Date;
    var viewSD:Date = rightDate(startViewDate.getMonth(), startViewDate.getDate(), startViewDate.getFullYear());
    var viewED:Date = rightDate(viewSD.getMonth(), viewSD.getDate() + 14, viewSD.getFullYear());
    var newACIDs:String = new String;
    var useACIDs:String = new String;

    for each (var item:Object in dPrepAC)
    {
            dprepSD = textToDate(item[2]);
            dprepED = rightDate(dprepSD.getMonth(), Number(dprepSD.getDate() + (item[3] - 1)), dprepSD.getFullYear());

            if (dateCollider(dprepSD, dprepED, viewSD, viewED))
                    tempDPrepsAC.addItem(item as Array);
    }

    if (tempDPrepsAC.length != usePrepAC.length)
    {
            usePrepAC = new ArrayCollection();
            usePrepAC = tempDPrepsAC;
            Alert.show("HI");
    }
}
此函数位于单独的文件中,该文件通过以下方式从主mxml调用:

<mx:Script source="functions/dprep.as" />
有人知道为什么这一行会导致应用程序暂停吗?如果我注释掉那一行,应用程序将很好地加载(加载除此AC应包含的信息之外的所有内容)。我已经看了大约一个小时了,试着用不同的方法将tempdprepac的内容转换成可用的prepac,但是没有任何效果。我试着用谷歌搜索,但什么也没找到:(

谢谢, BRD

编辑

dprep AC在主mxml中声明如下:

[Bindable] public var usePrepAC:ArrayCollection = new ArrayCollection;
[Bindable] public var dPrepAC:ArrayCollection = new ArrayCollection;
填充它的函数如下所示:

public function createDirectorsPrepCollection(e:ResultEvent):void
{
    var xmlList:XMLList = XML(e.result).directorsprep;
    var dupString:String = "|";
    var tempArray:Array = new Array;

    for (var i:int = 0; i < xmlList.length(); i++)
    {
        if (dupString.indexOf(String("|" + xmlList[i].name.@id) + "|") == -1)
        {
            tempArray = new Array;
            tempArray[0] = xmlList[i].prepDBID;
            tempArray[1] = xmlList[i].projectDBID;
            tempArray[2] = xmlList[i].startdate;
            tempArray[3] = xmlList[i].numdays;
            tempArray[4] = xmlList[i].positions;

            dPrepAC.addItem(tempArray);

            dupString += "|" + xmlList[i].prepDBID + "|";
        }
    }

    directorsPrepsToShow();
}
公共函数createDirectorsPrepCollection(e:ResultEvent):无效
{
var-xmlList:xmlList=XML(e.result).directorsprep;
var dupString:String=“|”;
var tempArray:Array=新数组;
for(var i:int=0;i
此函数由以下函数调用:

<mx:HTTPService id="dprepHttp" url="{dprepXML}" resultFormat="e4x" makeObjectsBindable="true" result="createDirectorsPrepCollection(event)" />


顺便说一句,dPrepAC正在填充fine btw…我在一个for each循环中检查它。

尝试使用以下代码:

usePrepAC.source = tempDPrepsAC.source;

它会回来吗;还是永远挂起?你是在调试模式下运行吗?你确定断点没有触发并等待你继续吗?这样的任务应该不会导致应用挂起。不,我让它运行了一夜……所以15个小时,它仍然没有加载。我已经读到了有关克隆AC的内容从我所读到的,当你做一些类似“ac1=ac2”的事情时,它们共享内存位置,这真的会把事情搞得一团糟。每个人都说他们有一个解决方案,但似乎没有一个有效。调试控制台只是显示:“CGS.swf-1440595字节解压后”运行Flextras后,我同意Flextras,我看不出有任何原因会导致你的应用程序挂起。你确定它会挂起吗?也许
tempdprepac.length==usepprepac.length
,因此该行从未被调用过?嗯,为了测试的目的,我更改了函数。而不是填充一个temp AC,然后将其与main one,我每次都重新填充了main one。因此,for each循环中的if语句大致如下所示:“if(dateCollider(dprepSD,dprepED,viewSD,viewSD))usePrepAC.addItem(项作为数组);”在此之后,它仍然会暂停。@Jason Towne-如果我对这一行进行注释,应用程序加载我确信它的大型XML解析会产生这种挂起的效果。您能否尝试将所有for循环限制为3-4项,然后按原样尝试代码。XML文件中只有2项。