0

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

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

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

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

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

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

斯坦

4

1 回答 1

0

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

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

于 2013-04-13T14:34:16.187 回答