但它是公平的假设,对于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 }