2011-04-17 55 views
0

儘管我盡了最大努力,但我無法在ActionScript中產生我想要的同步效果。問題是我需要進行幾次外部調用以獲取各種外部信息以響應用戶請求,並且項目在頁面上的佈局方式取決於每個外部調用返回的內容。所以,我不在乎所有這些調用都是異步返回的。但是,有什麼辦法可以在ActionScript上強制進行一些同步,因此至少調用頁面上項目的最終佈局和放置方法取決於所有我的調用完成?ActionScript中的同步

回答

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(); 
}