但它是公平的假設,對於Aync的HTTPService像柔性操作,內部會使用一些輔助線程來管理異步操作,然後回到主線程
無。 響應數據的處理與更新UI時發生在同一個線程中。例如,如果您在一次調用中返回5,000個AMF對象,則Flash Player將在線程上反序列化這些對象,這將導致UI凍結。
在內部,瀏覽器可能使用線程來管理從最終URL加載響應。但是,一旦響應被返回,並從瀏覽器切換到Flash播放器插件,就會在主線程中對該數據進行反序列化和處理。
flex/flash player可以同時處理多個httpservice調用嗎? (例如,多個UI部分同時加載數據)。
是的。 這裏的限制是從瀏覽器強制執行的,即瀏覽器併發HTTP請求的最大數量。這從瀏覽器到瀏覽器有所不同,但一般來說,發送多個請求到後端服務是可以的(也是鼓勵的)。
值得熟悉的是AsyncToken
,這是Flex處理併發呼叫時使用的主要類,確保請求和響應匹配在一起。
要知道,大多數類Flex中被用於與遠程服務communciating(例如,HttpService
和RemoteObject
)暴露concurrency
屬性,它定義了對象應該如何創建多個併發請求作出反應。 (允許開發人員明確允許或禁止它)。
動畫的東西(例如並行動畫)如何?flash player在內部是否利用某些線程來加速圖形,還是全部在UI線程上完成?
這不是我的專業領域,有人可能會糾正我。不過,我相信Flex通過生成一系列KeyFrame來創建動畫,這些KeyFrame會隨着時間的推移更改UIComponent上的值的屬性,然後執行它們。 (執行與其他所有內容在同一個線程中)。 因此,Parallal動畫是通過聚合關鍵幀的目標並將它們一起執行來生成的。
例如:Keyframe n at ms300 = { UIComponent1.x = 300; UIComponent2.y = 300 }