我可以使用as3 Workers的好处来加载外部swfs

时间:2013-04-13 11:43:14

标签: multithreading actionscript-3 flash

我有Flash Builder应用程序加载重型子swfs。加载swf时,UI会冻结几秒钟。 Swfs有两种类型:

  1. 带类的Swf(类似于flex模块) - VM需要一些时间来解析字节并将类添加到应用程序域。总swf大小约为2 MB。

  2. 带形状的Swf(转换后的pdf) - VM还使用UI锁解析类和库内容。 Swf大小可以是0.5 - 10 MB。

  3. 所以我希望使用as3 Workers(多线程功能),但到目前为止还没有见过类似的例子。问题:

    1. 主线程和子级是否共享相同的应用程序域(相同的类)?

    2. 我可以在工人之间传递显示对象吗?我想不,因为参数应该被序列化。

    3. 斯坦

1 个答案:

答案 0 :(得分:0)

工作线程是Flash运行时的虚拟实例,因此它们不共享应用程序域。 您只能在具有MessageChannel(使用amf序列化对象)和共享ByteArrays的线程之间进行通信。

可以使用绘制API将显示对象序列化为ByteArrayamf,但我认为这不会非常有效。如果您想从工作人员共享位图,这将更加现实。