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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 如何从同一点保持并继续FOR-LOOP_Apache Flex_Actionscript 3_For Loop_Facebook Fql - Fatal编程技术网

Apache flex 如何从同一点保持并继续FOR-LOOP

Apache flex 如何从同一点保持并继续FOR-LOOP,apache-flex,actionscript-3,for-loop,facebook-fql,Apache Flex,Actionscript 3,For Loop,Facebook Fql,嗨,伙计们,我得到了一个for/foreach循环,它调用其中的一个函数。问题是被调用的函数在循环再次进行之前并没有完成它的工作/ 这是我的密码: private function ziv(result:Array,fail:Object):void { var i:uint = result.length; for each(var f:Object in result) {

嗨,伙计们,我得到了一个for/foreach循环,它调用其中的一个函数。问题是被调用的函数在循环再次进行之前并没有完成它的工作/

这是我的密码:

            private function ziv(result:Array,fail:Object):void
        {
            var i:uint = result.length;
            for each(var f:Object in result)
            {
                var item:Object = f;
                notfriend=item;
                FacebookDesktop.fqlQuery("SELECT uid1, uid2 FROM friend WHERE uid1 = me() AND uid2 = "+item.id,myfriends);

            }
        }

        private function myfriends(result:Object,fail:Object):void
        {
            if (result.length != 0)
            myfriend.addItem(notfriend);
        }
正如您所见,我想在MYFRIENDS函数中添加一个项(notfriend),循环中定义了“notfriend”,但在“MYFRIENDS”函数完成加载时,该项已经更改为下一项,即使我最初引用的是上一项。 是否有一种方法可以在“myfriends”函数完成加载之前保持FORloop

我想在“myfriends”函数中使用Eventlistener,但是我该如何停止\保持循环?我所知道的是BREAK,它破坏FOR循环,CONTINUE,它从下一次迭代开始继续循环


10倍多,我真的在这里刹车

也许可以考虑不使用for循环,而手动执行循环(下面的示例使用递归)

private var index=0;
私有函数processArray(){
ProcessArrayItem(数组[索引])
}
专用函数进程项目(obj){
//完成后,递归调用函数
索引++;

if(indexU)在某些情况下可以使用递归函数

私有函数setZoom():void
{
var zoomLevel:Number=新编号(myPanel);
如果(zoomLevel!=100)
{
如果(缩放级别<100)
{
myPanel.zoomIN();
setZoom();
}
其他的
{
myPanel.zoomOUT();
setZoom();
}
}
}
但在某些情况下,我们不能这样做

只有一种解决方案,我们才能通过

使用函数

setTimeout()或callLater()

private var index=0;
private function processArray() {
  proccessArrayItem(array[index])
}
private function proccessArrayItem(obj) {

   //after complete then call function recursively
   index++;
   if (index<array.length) proccessArrayItem(array[index])
}
 private function setZoom():void
        {
            var zoomLevel:Number = new Number(myPanel);
            if(zoomLevel != 100)
            {
                if(zoomLevel < 100)
                {
                    myPanel.zoomIN();
                    setZoom();
                }
                else
                {
                    myPanel.zoomOUT();
                    setZoom();
                }
            }
        }