ActionScript中的同步

ActionScript中的同步,actionscript,synchronization,Actionscript,Synchronization,尽管我尽了最大的努力,我还是无法在ActionScript中产生我想要的那种同步效果。问题是,我需要进行几个外部调用,以获取响应用户请求的各种外部信息,而页面上项目的布局方式取决于每个外部调用返回的内容。所以,我不关心所有这些调用是否异步返回。但是,是否有任何方法可以强制ActionScript进行一定程度的同步,以便至少调用用于在页面上进行最终布局和项目放置的方法取决于我所有的调用是否完成?如果我正确理解这个问题,事件侦听器可能是您的最佳选择。大多数加载程序类都会抛出一个事件。当它们在幕后完成

尽管我尽了最大的努力,我还是无法在ActionScript中产生我想要的那种同步效果。问题是,我需要进行几个外部调用,以获取响应用户请求的各种外部信息,而页面上项目的布局方式取决于每个外部调用返回的内容。所以,我不关心所有这些调用是否异步返回。但是,是否有任何方法可以强制ActionScript进行一定程度的同步,以便至少调用用于在页面上进行最终布局和项目放置的方法取决于我所有的调用是否完成?

如果我正确理解这个问题,事件侦听器可能是您的最佳选择。大多数加载程序类都会抛出一个
事件。当它们在幕后完成所有操作时,完成
消息。如果您编写了这些外部调用,那么很容易在最后发送一个完整的事件

因此,当您进行所有这些外部调用时,有一个函数可以在这些调用完成时侦听。此函数将跟踪已进行的调用的数量,当没有可运行的调用时,继续构建布局

下面简要说明:

var numProcesses:int = 0;
slowthing.addEventListener(Event.COMPLETE,waitForSlowest);
numProcesses++;
slowthing.load();

quickThing.addEventListener(Event.COMPLETE,waitForSlowest);
numProcesses++;
quickthing.load();

function waitForSlowest(e:Event)
{
  numProcesses--;
  if(numProcesses == 0)
    finalizeLayout();
}