Actionscript 3 使用Worker类在动作脚本中执行多线程
我的主线被暂停,我对动作脚本还不熟悉。 这一错误的原因可能是什么Actionscript 3 使用Worker类在动作脚本中执行多线程,actionscript-3,apache-flex,Actionscript 3,Apache Flex,我的主线被暂停,我对动作脚本还不熟悉。 这一错误的原因可能是什么 Main Thread (Suspended: VerifyError: Error #1014: Class flash.system::Worker could not be found.) 此错误与工作进程未初始化有关。如果正在使用flash player,请尝试将其更新为最新版本和flash builder 请查看此链接以了解更多信息 如果您在使用或实现工人方面遇到问题,我制作了一个lib来帮助您,如果您愿
Main Thread (Suspended: VerifyError: Error #1014: Class flash.system::Worker could not be found.)
此错误与工作进程未初始化有关。如果正在使用flash player,请尝试将其更新为最新版本和flash builder 请查看此链接以了解更多信息
如果您在使用或实现工人方面遇到问题,我制作了一个lib来帮助您,如果您愿意,您可以提供帮助。。只需登录GitHub即可 实现是这样的
package
{
import com.tavernari.asworker.ASWorker;
import com.tavernari.asworker.notification.NotificationCenter;
import com.tavernari.asworker.notification.NotificationCenterEvent;
import flash.display.Sprite;
public class ASWorkerDemo extends Sprite
{
private var asWorker:ASWorker;
//BOTH AREA
public function ASWorkerDemo()
{
//important know, all class start here will be replicated in all works.
asWorker = new ASWorker(this.stage, uiWorkerStartedHandler, backWorkerStartedHandler);
}
//BOTH AREA END
//UI AREA START
private function uiWorkerStartedHandler():void{
//implement all class or calls for your UI
NotificationCenter.addEventListener("FROM_BACK_EVENT_MESSAGE", onFromBackEventMessageHandler );
}
private function onFromBackEventMessageHandler(e:NotificationCenterEvent):void
{
trace(e.data);
if(e.data == "completed job"){
NotificationCenter.dispatchEventBetweenWorkers( new NotificationCenterEvent("NEXT_MESSAGE") );
}
}
//UI AREA END
//BACK AREA START
private function backWorkerStartedHandler():void{
//implement all class or calls for your BACK operations
NotificationCenter.addEventListener("NEXT_MESSAGE", uiCallForNextMessageHandler );
}
private function uiCallForNextMessageHandler():void
{
for(var i:int = 0; i < 15; ++i){
NotificationCenter.dispatchEventBetweenWorkers( new NotificationCenterEvent("FROM_BACK_EVENT_MESSAGE", false, i) );
}
NotificationCenter.dispatchEventBetweenWorkers( new NotificationCenterEvent("FROM_BACK_EVENT_MESSAGE", false, "completed job") );
}
// BACK AREA END
}
}
包
{
导入com.tavernari.asworker.asworker;
导入com.tavernari.asworker.notification.NotificationCenter;
导入com.tavernari.asworker.notification.NotificationCenterEvent;
导入flash.display.Sprite;
公共类ASWorkerDemo扩展了Sprite
{
私人var asWorker:asWorker;
//两个区域
公共函数ASWorkerDemo()
{
//重要的是,这里的所有课程都将在所有作品中复制。
asWorker=新asWorker(this.stage、uiWorkerStartedHandler、backWorkerStartedHandler);
}
//双区端
//UI区域开始
私有函数uiWorkerStartedHandler():void{
//为您的UI实现所有类或调用
NotificationCenter.addEventListener(“FROM_BACK_EVENT_MESSAGE”,onFromBackEventMessageHandler);
}
onFromBackEventMessageHandler的私有函数(e:NotificationCenterEvent):void
{
跟踪(如数据);
如果(如数据=“已完成的作业”){
NotificationCenter.工作人员之间的调度事件(新NotificationCenter事件(“下一条消息”);
}
}
//用户界面区域结束
//后区起跑
私有函数backWorkerStartedHandler():void{
//为后台操作实现所有类或调用
NotificationCenter.addEventListener(“下一条消息”,uiCallForNextMessageHandler);
}
私有函数uiCallForNextMessageHandler():void
{
对于(变量i:int=0;i<15;++i){
NotificationCenter.Workers之间的DispatchEvent(新NotificationCenter事件(“FROM_BACK_EVENT_MESSAGE”,false,i));
}
NotificationCenter.Workers之间的DispatchEvent(新NotificationCenter事件(“从返回事件消息”,false,“已完成作业”);
}
//后区端
}
}
祝工作人员好运您使用的是哪个版本的Flash Builder,以及您使用哪个版本的SDK来构建您的项目?@Brian:我使用的是Adobe®Flash®Builder™ 4.6