【问题标题】:Synchronization in ActionScriptActionScript 中的同步
【发布时间】:2011-04-17 00:36:29
【问题描述】:
尽管我尽了最大努力,但我无法在 ActionScript 中产生我想要的那种同步效果。问题是我需要进行几次外部调用以获取各种外部信息以响应用户请求,并且项目在页面上的布局方式取决于每个外部调用返回的内容。所以,我不在乎所有这些调用都是异步返回的。但是,有什么方法可以强制在 ActionScript 上进行一定量的同步,以便至少调用用于在页面上进行最终布局和放置项目的方法取决于我的 all 调用完成吗?
【问题讨论】:
标签:
actionscript
synchronization
【解决方案1】:
如果我正确理解这个问题,事件监听器可能是你最好的选择。大多数加载器类在完成所有幕后操作时都会抛出Event.COMPLETE 消息。如果你编写了这些外部调用,那么在最后分派一个完整的事件会很容易。
因此,当您进行所有这些外部调用时,请使用一个函数来监听这些调用何时完成。此函数将跟踪已进行了多少次调用,当没有剩余可运行时,继续构建您的布局。
粗略的解释如下:
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();
}