2011-08-09 17 views
0

>序貫方案我想制定如下方案AS3如何代碼的並行 - 在AS3

main -> Async call A -----> join 
    |- Async call B ->| 
    |- Async call C ->| 

-

var xmlLoaderA:URLLoader = new URLLoader(); 
var xmlLoaderB:URLLoader = new URLLoader(); 
var xmlLoaderC:URLLoader = new URLLoader(); 
xmlLoaderA.load(new URLRequest("http://example.com/a.xml")); 
xmlLoaderB.load(new URLRequest("http://example.com/b.xml")); 
xmlLoaderC.load(new URLRequest("http://example.com/c.xml")); 

xmlLoaderA.addEventListener(Event.COMPLETE, xmlLoadedA); 
xmlLoaderB.addEventListener(Event.COMPLETE, xmlLoadedB); 
xmlLoaderC.addEventListener(Event.COMPLETE, xmlLoadedC); 

一個異步調用有HTTP訪問和連接方法合併從數據每個HTTP訪問。 如果你有一個例子,我很高興。

+1

並行和串行的作者是反義詞。你是否希望他們按順序(異步)請求它們,還是希望他們同時請求所有請求,並在所有請求都完成後收到通知? –

回答

1

raix framework允許異步操作的成分:

編輯:我誤解你的異步要求。更新在同一時間向所有三個取:

Observable.forkJoin([ 
    Observable.urlRequest(new URLRequest("http://tempuri.org/1")) 
    Observable.urlRequest(new URLRequest("http://tempuri.org/2")) 
    Observable.urlRequest(new URLRequest("http://tempuri.org/3")) 
]) 
.subscribe(function(values:Array) : void 
{ 
    // values contains result from requests in the original order 
}); 

免責聲明:我raix

+0

真棒!我可以用FlashDevelop構建嗎? – freddiefujiwara

+1

@freddiefujiwara - 這只是動作,所以我不明白爲什麼不。 –