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.display 

ShaderJob  - AS3

Packageflash.display
Classepublic class ShaderJob
HéritageShaderJob Inheritance EventDispatcher Inheritance Object

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

Une occurrence ShaderJob est utilisée pour exécuter une opération de shader en mode autonome. L’opération de shader s’exécute et renvoie son résultat. Il incombe au développeur de déterminer comment utiliser ce résultat.

Il existe deux raisons principales à l’utilisation d’un shader en mode autonome :

  • Traitement des données non graphiques : l’utilisation d’une occurrence de ShaderJob vous permet de contrôler les valeurs d’entrée, ainsi que la méthode d’utilisation du résultat du shader. Le shader peut renvoyer le résultat sous forme de données binaires ou numériques plutôt que sous forme de données image.
  • Traitement en arrière-plan : certains shaders sont complexes et leur exécution prend un certain temps. L’exécution d’un shader complexe dans la ligne d’exécution principale d’une application peut ralentir les autres parties de l’application, telles que l’interaction de l’utilisateur ou la mise à jour de l’écran. L’utilisation d’une occurrence de ShaderJob vous permet d’exécuter le shader dans l’arrière-plan. Lorsque le shader est exécuté de cette manière, l’opération de shader est indépendante de l’exécution principale de l’application.

La propriété shader (ou paramètre constructeur) spécifie l’occurrence Shader représentant le shader utilisé pour l’opération. Vous fournissez les paramètres ou les entrées attendues par le shader à l’aide de l’occurrence de ShaderParameter ou de ShaderInput associée.

Avant l’exécution d’une opération ShaderJob, vous fournissez un objet dans lequel le résultat est écrit, en le définissant comme la valeur de la propriété target. Une fois l’opération de shader terminée, le résultat est écrit dans l’objet target.

Pour commencer une opération de shader dans l’arrière-plan, appelez la méthode start(). Une fois l’opération terminée, le résultat est écrit dans l’objet target. A ce stade, l’occurrence ShaderJob déclenche un événement complete, qui indique aux écouteurs que le résultat est disponible.

Pour exécuter un shader de façon synchrone (c’est-à-dire qui ne s’exécute pas dans l’arrière-plan), appelez la méthode start(), puis transmettez true en tant qu’argument. Le shader s’exécute dans la thread principale et votre code s’interrompt jusqu’à la fin de l’opération. Lorsque l’opération est terminée, le résultat est écrit dans l’objet target. A ce stade, l’application continue de s’exécuter à la ligne de code suivante.

Plus d’exemples

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
  height : int
Hauteur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>.
ShaderJob
  progress : Number
[lecture seule] Progression d’un shader en cours d’exécution.
ShaderJob
  shader : Shader
Shader utilisé pour l’opération.
ShaderJob
  target : Object
Objet dans lequel est écrit le résultat de l’opération du shader.
ShaderJob
  width : int
Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>.
ShaderJob
Méthodes publiques
 MéthodeDéfini par
  
ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)
ShaderJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
Annule l’opération de shader en cours d’exécution.
ShaderJob
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 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
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
 Inherited
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle.
Object
  
start(waitForCompletion:Boolean = false):void
Lance une opération de shader en mode synchrone ou asynchrone selon la valeur du paramètre waitForCompletion.
ShaderJob
 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
 Inherited
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.
EventDispatcher
Evénements
 Evénement Synthèse Défini par
 Inherited[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active.EventDispatcher
  Distribué lorsqu’un ShaderJob qui s’exécute de façon asynchrone achève de traiter les données à l’aide du shader.ShaderJob
 Inherited[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive.EventDispatcher
Détails de la propriété

height

propriété
height:int

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

Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées.



Implémentation
    public function get height():int
    public function set height(value:int):void

progress

propriété 
progress:Number  [lecture seule]

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

Progression d’un shader en cours d’exécution. Cette propriété est une valeur comprise entre 0 et 1. La valeur initiale est zéro (0 %). 1 indique que le shader a terminé son opération.

Si la méthode cancel() est appelée, cette propriété devient undefined et sa valeur ne peut pas être utilisée de façon fiable jusqu’à ce que l’opération du shader redémarre.



Implémentation
    public function get progress():Number

shader

propriété 
shader:Shader

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

Shader utilisé pour l’opération. Les entrées ou paramètres attendus par le shader doivent être fournis à l’aide de la propriété ShaderInput ou ShaderParameter de la propriété data de l’occurrence Shader. L’entrée doit être fournie par sa propriété ShaderInput correspondante si c’est la même que l’objet target.

Pour traiter un ByteArray contenant un tableau de données linéaire (par opposition aux données image), définissez la propriété height de l’occurrence ShaderInput sur 1 et la propriété width sur les valeurs en virgule flottante 32 bits du ByteArray. Dans ce cas, l’entrée dans le shader doit être définie avec le type de données image1.



Implémentation
    public function get shader():Shader
    public function set shader(value:Shader):void

Eléments de l’API associés

target

propriété 
target:Object

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

Objet dans lequel est écrit le résultat de l’opération du shader. Cet objet doit être une occurrence de BitmapData, de ByteArray ou de Vector.<Number>.



Implémentation
    public function get target():Object
    public function set target(value:Object):void

width

propriété 
width:int

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

Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées.



Implémentation
    public function get width():int
    public function set width(value:int):void
Détails du constructeur

ShaderJob

()Constructeur
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)

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

Paramètres
shader:Shader (default = null) — Shader à utiliser pour l’opération.
 
target:Object (default = null) — Objet dans lequel est écrit le résultat de l’opération du shader. Cet argument doit être une occurrence de BitmapData, de ByteArray ou de Vector.<Number>.
 
width:int (default = 0) — Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées.
 
height:int (default = 0) — Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées.
Détails de la méthode

cancel

()méthode
public function cancel():void

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

Annule l’opération de shader en cours d’exécution. Les résultats déjà calculés sont ignorés. L’événement complete n’est pas déclenché.

L’appel répété de cancel() n’a pas d’effet.

start

()méthode 
public function start(waitForCompletion:Boolean = false):void

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

Lance une opération de shader en mode synchrone ou asynchrone selon la valeur du paramètre waitForCompletion.

En mode asynchrone (lorsque le paramètre waitForCompletion est défini sur false), mode par défaut, l’exécution de ShaderJob a lieu dans l’arrière-plan. L’opération de shader n’a aucune incidence sur la réactivité de l’affichage ou sur d’autres opérations. En mode asynchrone, l’appel de la méthode start() est immédiatement renvoyé et le programme continue avec la ligne de code suivante. Lorsque l’opération de shader asynchrone est terminée, le résultat est disponible et l’événement complete est distribué.

Une seule opération ShaderJob d’arrière-plan peut s’exécuter à la fois. Les opérations de shader restent en file d’attente jusqu’à leur exécution. Si vous appelez la méthode start() lorsqu’une opération de shader est en cours d’exécution, les autres opérations sont ajoutées à la fin de la file d’attente, puis sont exécutées au moment opportun.

Pour exécuter une opération de shader en mode synchrone, appelez la méthode start() et définissez le paramètre waitForCompletion (l’unique paramètre) sur true. Votre code s’interrompt au point où la méthode start() est appelée jusqu’à ce que l’opération de shader se termine. A ce stade, le résultat est disponible et l’exécution se poursuit avec la ligne de code suivante.

Lorsque vous appelez la méthode start(), l’occurrence Shader dans la propriété shader est copiée en interne. L’opération de shader utilise cette copie interne et non une référence du shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié utilisé pour le traitement du shader. Pour intégrer les modifications apportées au shader dans le traitement du shader, appelez la méthode cancel() (le cas échéant), puis de nouveau la méthode start() pour redémarrer le traitement du shader.

Lorsqu’une opération de shader est en cours d’exécution, la valeur de l’objet target n’est pas modifiée. Lorsque l’opération se termine (et que l’événement complete est déclenché en mode asynchrone), le résultat complet est écrit en une seule fois dans l’objet target. Si l’objet target est une occurrence de BitmapData et que sa méthode dispose() est appelée avant la fin de l’opération, l’événement complete est tout de même déclenché en mode asynchrone. Toutefois, les données du résultat ne sont pas inscrites dans l’objet BitmapData car celui est en état disposé.

Paramètres

waitForCompletion:Boolean (default = false) — Indique si le shader doit être exécuté dans l’arrière-plan (false, valeur par défaut) ou dans l’exécution du programme principale (true).


Evénements
complete:ShaderEvent — Distribué lorsque l’opération est terminée, si la méthode start() est appelée avec un argument waitForCompletion dont la valeur est true.

Valeur émise
ArgumentError — Lorsque la propriété target est définie sur null ou n’est pas une occurrence de BitmapData, de ByteArray ou de Vector.<Number>.
 
ArgumentError — Lorsque le shader spécifie une entrée d’image non fournie.
 
ArgumentError — Lorsqu’une occurrence de ByteArray ou de Vector.<Number> est utilisée comme entrée et les propriétés width et height ne sont pas spécifiées pour le ShaderInput, ou les valeurs spécifiées ne correspondent pas à la quantité de données dans l’objet d’entrée. Voir la propriété ShaderInput.input pour plus d’informations.
Détails de l’événement

complete

Evénement
Type d’objet d’événement: flash.events.ShaderEvent
propriété ShaderEvent.type = flash.events.ShaderEvent.COMPLETE

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

Distribué lorsqu’un ShaderJob qui s’exécute de façon asynchrone achève de traiter les données à l’aide du shader. Une occurrence de ShaderJob s’exécute de façon asynchrone lorsque la méthode start() est appelée et que la valeur du paramètre waitForCompletion est définie sur false.

Définit la valeur de la propriété type d’un objet événement complete.

Les propriétés de cet événement sont les suivantes :

PropriétéValeur
bubblesfalse
bitmapDataObjet BitmapData contenant le résultat de l’opération terminée (ou null si la cible n’était pas un objet BitmapData).
byteArrayObjet ByteArray contenant le résultat de l’opération terminée (ou null si la cible n’était pas un objet ByteArray).
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
currentTargetObjet qui traite activement l’objet de l’événement avec un écouteur d’événement.
targetObjet ShaderJob signalant la fin de l’opération.
vectorLe Vector.Occurrence <Number> contenant le résultat de l’opération terminée (ou null si la cible n’était pas un Vector.Occurrence <Number>).




[ 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.