我有Flash Builder应用程序加载重型子swfs。加载swf时,UI会冻结几秒钟。 Swfs有两种类型:
带类的Swf(类似于flex模块) - VM需要一些时间来解析字节并将类添加到应用程序域。总swf大小约为2 MB。
带形状的Swf(转换后的pdf) - VM还使用UI锁解析类和库内容。 Swf大小可以是0.5 - 10 MB。
所以我希望使用as3 Workers(多线程功能),但到目前为止还没有见过类似的例子。问题:
主线程和子级是否共享相同的应用程序域(相同的类)?
我可以在工人之间传递显示对象吗?我想不,因为参数应该被序列化。
斯坦
答案 0 :(得分:0)
工作线程是Flash运行时的虚拟实例,因此它们不共享应用程序域。
您只能在具有MessageChannel(使用amf
序列化对象)和共享ByteArrays的线程之间进行通信。
可以使用绘制API将显示对象序列化为ByteArray
或amf
,但我认为这不会非常有效。如果您想从工作人员共享位图,这将更加现实。