Advertisement
Guest User

fwibbadle

a guest
Nov 27th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     package
  2.     {
  3.             import flash.display.MovieClip;
  4.             import flash.events.MouseEvent;
  5.             import flash.events.Event;
  6.             import flash.system.MessageChannel;
  7.             import flash.system.Worker;
  8.             import flash.system.WorkerDomain;
  9.          
  10.             //[SWF(frameRate=30)]
  11.             public class Main extends MovieClip
  12.             {
  13.                     // worker SWF
  14.                     [Embed(source="BackWorker.swf", mimeType="application/octet-stream")]
  15.                     private var WorkerSWF:Class;
  16.                  
  17.                     // worker object
  18.                     private var worker:Worker;
  19.                  
  20.                     // message channels
  21.                     private var wm:MessageChannel; // worker to main
  22.                     private var mw:MessageChannel; // main to worker
  23.                  
  24.                     public function Main()
  25.                     {
  26.                             // inst worker
  27.                             worker = WorkerDomain.current.createWorker(new WorkerSWF());
  28.                          
  29.                             // worker to main channel setup
  30.                             wm = worker.createMessageChannel(Worker.current);
  31.                             mw = Worker.current.createMessageChannel(worker);
  32.                          
  33.                             worker.setSharedProperty("wtm", wm);
  34.                             worker.setSharedProperty("mtw", mw);
  35.                          
  36.                             wm.addEventListener(Event.CHANNEL_MESSAGE, onWorkerToMain);
  37.                             mw.addEventListener(Event.CHANNEL_MESSAGE, onMainToWorker);
  38.                          
  39.                             // start worker
  40.                             worker.start();
  41.                          
  42.                             // ask worker if it's ready
  43.                             mw.send("AREYAREADY");
  44.                     }
  45.                  
  46.                     protected function onWorkerToMain(e:Event):void
  47.                     {
  48.                             if (e.currentTarget.messageAvailable)
  49.                             {
  50.                                     // get message from worker
  51.                                     var header:String = wm.receive();
  52.                                  
  53.                                     if (header == "YEP")
  54.                                     {
  55.                                             trace("Worker is ready. Telling worker to get to work and send back data.");
  56.                                             mw.send("WORK");
  57.                                     }
  58.                                     else if (header == "NUMBER")
  59.                                     {
  60.                                             var num:Number = wm.receive();
  61.                                             // we know this is the data we wanted.. just 500 * 500 + 500 / 500..
  62.                                             trace("Worker result: " + num);
  63.                                     }
  64.                             }
  65.                     }
  66.                  
  67.                     protected function onMainToWorker(e:Event):void {}
  68.             }
  69.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement