Flash Worker imita el estilo HTML5, facilita la portada de los programas JS a AS y se utiliza para la computación intensiva en los navegadores de baja versión.
El programa principal crea una subrutina a través de WebWorker . (Pasado en el Bytearray del archivo SWF Subrutine)
La subrutina puede obtener message , el método postMessage y otras características heredando WebWorkerContext .
Nota: La versión SDK requiere 11.5 o más.
El método postMessage no tiene el concepto de objetos transferibles en HTML5.可共享变量se pasan a través de los métodos setSharedObject y getSharedObject .
WebWorker ha agregado un atributo tag para facilitar la asociación de alguna información. (La clase de Flash está cerrada y no puede agregar atributos adicionales. Solo puede asociarse con la información a través de subclases o diccionario, lo cual es más problemático)
Después de que se cree WebWorker , puede postMessage . El programa registrará temporalmente el mensaje en la cola y lo recibirá después de que se inicialice la subrutina.
Se ha agregado el método estático isMainThread para determinar si actualmente es el programa principal, lo que lo hace conveniente para el programa principal y la subrutina compartir un archivo SWF.
// Startup.as
public class Startup extends Sprite {
...
public function Startup () {
if (WebWorker . isMainThread()) {
new Main( loaderInfo . bytes ) ;
} else {
new Child() ;
}
}
}
// Main.as
public class Main {
...
public function Main ( workerBytes : ByteArray ) {
var worker : WebWorker = new WebWorker(workerBytes) ;
worker . addEventListener ( 'message' , msgHander) ;
worker . postMessage( 'hello' ) ;
}
private function msgHander ( e : WebWorkerEvent ) : void {
var msg : * = e . data ;
trace ( 'msg from worker:' , msg) ;
}
}
// Child.as
public class Child extends WebWorkerContext {
public function Child () {
addEventListener ( 'message' , msgHander) ;
}
private function msgHander ( e : WebWorkerEvent ) : void {
var msg : * = e . data ;
trace ( 'msg from main:' , msg) ;
postMessage(msg + ' world' ) ;
}
}https://github.com/etherdream/webscrypt/tree/master/src/mod_flash/src