Multithreading AdobeAIR AS3:如何在workers\多线程(由workers)中运行函数
我有一个很重的函数,不适合在主时间轴中执行(因为它需要很长时间才能完成,并且会使程序崩溃)。Multithreading AdobeAIR AS3:如何在workers\多线程(由workers)中运行函数,multithreading,actionscript-3,flash,air,adobe,Multithreading,Actionscript 3,Flash,Air,Adobe,我有一个很重的函数,不适合在主时间轴中执行(因为它需要很长时间才能完成,并且会使程序崩溃)。 因此,我搜索了air中的多线程(as3),但我找到的所有示例都解释了如何在worker中运行单独的swf文件。如何在worker(线程)中运行函数?正式worker文档():每个额外的worker都是从单独的swf创建的 因此,您可以将繁重的代码安排为一个额外的SWF,或者重构它,以便可以暂停和恢复它,并将其执行扩展到多个帧(输入帧事件,而不是时间线帧,ofc) 另外,在同一个文档页面上,有一种方法可以
因此,我搜索了air中的多线程(as3),但我找到的所有示例都解释了如何在worker中运行单独的swf文件。如何在worker(线程)中运行函数?正式worker文档():每个额外的worker都是从单独的swf创建的 因此,您可以将繁重的代码安排为一个额外的SWF,或者重构它,以便可以暂停和恢复它,并将其执行扩展到多个帧(输入帧事件,而不是时间线帧,ofc) 另外,在同一个文档页面上,有一种方法可以在两个worker中运行主SWF,这样您就可以将其分为控制应用程序和worker应用程序
// 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
}
}
感谢亲爱的Organia,我是伊朗用户,adobe已经屏蔽了我们的ip,请您发布一个“在两个工人中运行主SWF”的示例。您可能还想使用一些在线匿名代理,这将为您解决不便的堵塞问题。@AmirRasti如果您使用Chrome浏览器,请尝试一个名为UltraSurf VPN的扩展。也可以使用AdBlock。然后你可以看到世界上任何一个网站都没有被封锁。