AS3的多线程和Java的不同,程序员需要在同一个类中判断当前是在主线程还是在分支线程,然后进行操作。
判断Worker.current.isPrimordial这个量:
if(Worker.current.isPrimordial)
{
//这里是主线程
}
else
{
//这里是分支线程
}
假设我们还是上一篇文章的那个情况,在HelloWorldWorker类里,我们需要一个对象级的变量,用protected var worker:Worker;,然后添加Added To Stage事件及其处理代码:
public function HelloWorldWorker()
{
this.addEventListener (Event.ADDED_TO_STAGE,init);
}
private function init(e:Event=null):void
{
removeEventListener (Event.ADDED_TO_STAGE,init);
}
在init函数的末尾加上:
if(Worker.current.isPrimordial){
//这里是创建分支线程,注意parent对应的是主类(Main)的对象
worker = WorkerDomain.current.createWorker(parent.loaderInfo.bytes);
//启动worker线程,worker就是对象变量的那个worker
worker.start();
}
else {
}
这时候&#x