作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个繁重的功能,不适合在主时间轴上执行(因为要花很长时间才能完成并使程序崩溃)。
因此我在air(as3)中搜索多线程,但是我发现的所有示例都说明了如何在worker中运行单独的swf文件。如何在worker(thread)中运行函数?
最佳答案
正式工作人员文档(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Worker.html):每个其他工作人员都是通过单独的swf创建的。
因此,您要么将沉重的代码安排为附加的SWF,要么对其进行重构,以便可以暂停和恢复该代码并将其执行分散到多个帧(ENTER_FRAME事件,而不是时间轴帧,ofc)中。
P.S.在同一文档页面上,有一种方法可以在两个工作程序中运行主SWF,因此您可以将其分入控制应用程序和工作程序应用程序中。
// The primordial worker's main class constructor
public function PrimordialWorkerClass()
{
init();
}
private function init():void
{
var swfBytes:ByteArray = this.loaderInfo.bytes;
// Check to see if this is the primordial worker
if (Worker.current.isPrimordial)
{
// create a background worker
var bgWorker:Worker = WorkerDomain.current.createWorker(swfBytes);
// listen for worker state changes to know when the worker is running
bgWorker.addEventListener(Event.WORKER_STATE, workerStateHandler);
// set up communication between workers using
// setSharedProperty(), createMessageChannel(), etc.
// ... (not shown)
bgWorker.start();
}
else // entry point for the background worker
{
// set up communication between workers using getSharedProperty()
// ... (not shown)
// start the background work
}
}
关于multithreading - Adobe Air AS3 :How to run a function in workers_ Multithreading (by Workers),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906999/
我是一名优秀的程序员,十分优秀!