Guide de référence ActionScript® 3.0 pour la plate-forme Adobe® Flash®
Accueil  |  Masquer la liste des packages et des classes |  Packages  |  Classes  |  Nouveautés  |  Index  |  Annexes  |  Pourquoi existe-t-il du contenu en anglais ?
Filtres : Récupération des données du serveur...
Récupération des données du serveur...
flash.system 

WorkerDomain  - AS3

Packageflash.system
Classepublic final class WorkerDomain
HéritageWorkerDomain Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11.4, AIR 3.4

La classe WorkerDomain fournit une méthode pour créer des objets Worker et pour y accéder. WorkerDomain représente le mécanisme du moteur d’exécution permettant de gérer l’ensemble des programmes de travail au sein d’un domaine de sécurité.

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és publiques
 PropriétéDéfini par
 Inheritedconstructor : 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éthodes publiques
 MéthodeDéfini par
  
createWorker(swf:ByteArray, giveAppPrivileges:Boolean = false):Worker
Crée une nouvelle occurrence de Worker à partir des octets d’un fichier swf.
WorkerDomain
 Inherited
Indique si la propriété spécifiée d’un objet est définie.
Object
 Inherited
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
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l’objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l’objet spécifié.
Object
Détails de la propriété

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
Détails de la méthode

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

Valeur renvoyée
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).

Valeur renvoyée
Vector.<Worker> — Vecteur d’occurrences de l’objet Worker contenant les programmes de travail en cours d’exécution.




[ X ]Pourquoi existe-t-il du contenu en anglais ?
Certaines parties du Guide de référence ActionScript 3.0 sont en anglais

Tout le contenu du Guide de référence ActionScript 3.0 n’a pas été traduit dans toutes les langues. Si un élément de langage n’est pas traduit, il s’affiche en anglais. Par exemple, la classe ga.controls.HelpBox n’est traduite dans aucune langue. Ainsi, dans la version française du guide de référence, la classe ga.controls.HelpBox apparaît en anglais.