Package | flash.system |
Classe | public final class WorkerDomain |
Héritage | WorkerDomain Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Remarque : l’utilisation de programmes de travail à des fins de simultanéité est prise en charge dans Flash Player et AIR sur les plateformes de bureau. Sur les plateformes mobiles, la simultanéité est prise en charge dans AIR Android, mais pas dans AIR iOS. Vous pouvez faire appel à la propriété statique isSupported pour vérifier si la simultanéité est prise en charge avant d’essayer de l’utiliser.
Vous ne pouvez pas créer d’occurrences de WorkerDomain directement en appelant le constructeur WorkerDomain()
. Il n’existe qu’une seule occurrence de WorkerDomain pour une application. Dans les contextes où l’utilisation de programmes de travail est prise en charge, le moteur d’exécution crée automatiquement l’objet WorkerDomain au démarrage. Utilisez la propriété statique current
pour accéder à cette occurrence.
Pour créer une nouvelle occurrence de la classe Worker, utilisez la méthode createWorker()
. Pour accéder à l’ensemble des objets Worker en cours d’exécution, utilisez la méthode listWorkers()
.
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
current : WorkerDomain [statique] [lecture seule]
L’occurrence de WorkerDomain dans laquelle le code est en cours d’exécution. | WorkerDomain | ||
isSupported : Boolean [statique] [lecture seule]
Indique si le contexte du moteur d’exécution actuel prend en charge les objets WorkerDomain et Worker pour l’exécution de code simultanée. | WorkerDomain |
Méthode | Défini par | ||
---|---|---|---|
Crée une nouvelle occurrence de Worker à partir des octets d’un fichier swf. | WorkerDomain | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Permet d’accéder à l’ensemble de programmes de travail en cours d’exécution dans l’objet WorkerDomain (la propriété state de l’occurrence de l’objet Worker est WorkerState.RUNNING). | WorkerDomain | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
current | propriété |
current:WorkerDomain
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
L’occurrence de WorkerDomain dans laquelle le code est en cours d’exécution. Il s’agit de l’unique objet WorkerDomain dans l’application.
Implémentation
public static function get current():WorkerDomain
isSupported | propriété |
isSupported:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Indique si le contexte du moteur d’exécution actuel prend en charge les objets WorkerDomain et Worker pour l’exécution de code simultanée.
Si la fonction de simultanéité est disponible, la valeur de cette propriété est true
.
Implémentation
public static function get isSupported():Boolean
createWorker | () | méthode |
public function createWorker(swf:ByteArray, giveAppPrivileges:Boolean = false):Worker
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Crée une nouvelle occurrence de Worker
à partir des octets d’un fichier swf.
Chaque programme de travail est créé et s’exécute comme une application swf isolée. Pour créer une occurrence de Worker, vous obtenez les octets du fichier SWF comme une occurrence de ByteArray et les transmettez à cette méthode. Il existe trois méthodes standard pour accéder aux octets d’un fichier swf à ces fins :
Utilisez la métabalise [Embed] pour intégrer le fichier .swf à l’application en tant qu’objet ByteArray :
// Embed the SWF file [Embed(source="../swfs/BgWorker.swf", mimeType="application/octet-stream")] private static var BgWorker_ByteClass:Class; private function createWorker():void { // create the background worker var workerBytes:ByteArray = new BgWorker_ByteClass(); var bgWorker:Worker = WorkerDomain.current.createWorker(workerBytes); // 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(); }
Chargez un fichier SWF externe à l’aide d’un objet URLLoader :
// load the SWF file var workerLoader:URLLoader = new URLLoader(); workerLoader.dataFormat = URLLoaderDataFormat.BINARY; workerLoader.addEventListener(Event.COMPLETE, loadComplete); workerLoader.load(new URLRequest("BgWorker.swf")); private function loadComplete(event:Event):void { // create the background worker var workerBytes:ByteArray = event.target.data as ByteArray; var bgWorker:Worker = WorkerDomain.current.createWorker(workerBytes); // 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(); }
Utilisez un fichier swf unique en tant que programme de travail primordial et programme de travail en arrière-plan :
// 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 }
La création d’un objet Worker à l’aide de la méthode createWorker()
ne lance pas l’exécution du programme de travail. Pour lancer l’exécution du code d’un programme de travail, appelez la méthode start()
de l’objet Worker.
Les programmes de travail sont utiles, car ils diminuent le risque d’une baisse de la cadence, qui peut se produire si le thread de rendu principal est bloqué par l’exécution d’un autre code. Les programmes de travail augmentent toutefois l’utilisation de la mémoire système et du processeur, ce qui peut avoir une incidence considérable sur les performances globales de l’application. Etant donné que chaque programme de travail utilise sa propre occurrence de la machine virtuelle du moteur d’exécution, le traitement d’un programme de travail, aussi simple soit-il, peut consommer de nombreuses ressources. Lorsque vous utilisez des programmes de travail, testez votre code sur toutes vos plates-formes cibles afin de vous assurer que les ressources requises ne sont pas trop importantes. Adobe vous recommande de ne pas utiliser plus de deux programmes de travail dans un scénario type.
Paramètres
swf:ByteArray — Objet ByteArray contenant les octets d’un fichier swf valide
| |
giveAppPrivileges:Boolean (default = false ) — indique si le programme de travail doit recevoir des privilèges d’accès au sandbox de l’application dans AIR. Ce paramètre est ignoré dans Flash Player
|
Worker — l’objet Worker nouvellement créé si la création réussit. Si la valeur renvoyée est null , cela signifie qu’il s’est avéré impossible de créer un programme de travail, soit parce que le contexte actuel ne prend pas en charge la simultanéité, soit parce qu’un nouveau programme de travail risquerait de dépasser les limites d’implémentation.
|
Valeur émise
SecurityError — si le fichier swf dont les octets sont transmis au paramètre swf provient d’un domaine de sécurité différent de celui du fichier swf dans lequel cette méthode est appelée
|
listWorkers | () | méthode |
public function listWorkers():Vector.<Worker>
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 11.4, AIR 3.4 |
Permet d’accéder à l’ensemble de programmes de travail en cours d’exécution dans l’objet WorkerDomain (la propriété state
de l’occurrence de l’objet Worker est WorkerState.RUNNING
).
Vector.<Worker> — Vecteur d’occurrences de l’objet Worker contenant les programmes de travail en cours d’exécution.
|
Tue Jun 12 2018, 09:30 AM Z