Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Les cibles d’événement constituent une part importante du modèle d’événement de Flash® Player et d’Adobe® AIR®. La cible de l’événement détermine le flux d’événements dans la hiérarchie de la liste d’affichage. Lorsqu’un événement, tel qu’un clic de souris ou une pression sur une touche, se produit, Flash Player ou l’application AIR distribue un objet événement dans le flux d’événements, à partir de la racine de la liste d’affichage. Cet objet descend dans la liste jusqu’à ce qu’il atteigne la cible de l’événement et commence alors à remonter la liste d’affichage. Cet aller-retour jusqu’à la cible de l’événement est divisé de manière conceptuelle en trois phases : la phase de capture correspond au trajet de la racine jusqu’au dernier nœud précédant le nœud de la cible de l’événement, la phase cible concerne uniquement le nœud de la cible de l’événement, tandis que la phase de propagation vers le haut (bubbling) comprend tous les nœuds rencontrés sur le trajet de retour à la racine de la liste d’affichage.
En règle générale, pour qu’une classe définie par l’utilisateur acquière des fonctions de distribution, le plus simple consiste à étendre EventDispatcher. Si cela est impossible (autrement dit, si cette classe étend déjà une autre classe), vous pouvez implémenter l’interface IEventDispatcher, créer un membre EventDispatcher et écrire des raccrochements simples pour acheminer les appels vers la classe EventDispatcher regroupée.
Informations complémentaires
Méthode | Défini par | ||
---|---|---|---|
EventDispatcher(target:IEventDispatcher = null)
Regroupe une occurrence de la classe EventDispatcher. | EventDispatcher | ||
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 | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
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 | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
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 | ||
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énement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | EventDispatcher | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | EventDispatcher |
EventDispatcher | () | Constructeur |
public function EventDispatcher(target:IEventDispatcher = null)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Regroupe une occurrence de la classe EventDispatcher.
La classe EventDispatcher est généralement utilisée comme classe de base, ce qui signifie que la plupart des développeurs n’ont pas besoin d’utiliser cette fonction constructeur. Toutefois, les développeurs expérimentés qui implémentent l’interface IEventDispatcher doivent l’utiliser. S’il vous est impossible d’étendre la classe EventDispatcher et que vous devez implémenter l’interface IEventDispatcher à la place, utilisez cette fonction constructeur pour regrouper une occurrence de la classe EventDispatcher.
Paramètrestarget:IEventDispatcher (default = null ) — Objet cible des événements distribués à l’objet EventDispatcher. Ce paramètre s’utilise lorsque l’occurrence de EventDispatcher est regroupée par une classe qui implémente IEventDispatcher. Il permet à l’objet conteneur d’être la cible des événements. Ne vous servez pas de ce paramètre dans des cas simples pour lesquels une classe étend EventDispatcher.
|
addEventListener | () | méthode |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. Vous pouvez enregistrer les écouteurs d’événement dans tous les nœuds de la liste d’affichage pour un type spécifique d’événement, de phase et de priorité.
Après l’enregistrement d’un écouteur d’événement, vous ne pouvez plus modifier sa priorité par d’autres appels de addEventListener()
. Pour modifier la priorité d’un écouteur, vous devez d’abord appeler removeListener()
. Vous pouvez ensuite réenregistrer l’écouteur avec le nouveau niveau de priorité.
N’oubliez pas qu’une fois l’écouteur enregistré, tous les prochains appels de addEventListener()
avec une valeur type
ou useCapture
différente entraîneront la création d’un autre enregistrement d’écouteur. Si, par exemple, vous enregistrez un écouteur dans lequel la propriété useCapture
est définie sur true
, il écoute uniquement pendant la phase de capture. Si vous appelez addEventListener()
à l’aide du même objet écouteur, mais en définissant useCapture
sur false
, vous obtenez deux écouteurs distincts : l’un qui écoute pendant la phase de capture et l’autre qui écoute pendant les phases cible et de propagation vers le haut (bubbling).
Il est impossible d’enregistrer un écouteur d’événement uniquement pour la phase cible ou la phase de propagation vers le haut. Ces deux phases sont associées pendant l’enregistrement car la propagation vers le haut s’applique uniquement aux ancêtres du nœud cible.
Si vous n’avez plus besoin d’un écouteur d’événements, supprimez-le en appelant removeEventListener()
, afin d’éviter tout problème de mémoire. Les écouteurs d’événement ne sont pas automatiquement supprimés de la mémoire, car le nettoyeur de mémoire ne supprime pas l’écouteur tant que l’objet de distribution existe (à moins que le paramètre useWeakReference
ne soit défini sur true
).
Lors de la copie d’une occurrence d’EventDispatcher, les écouteurs d’événement qui lui sont associés ne sont pas pris en compte (si le nouveau nœud nécessite un écouteur d’événement, vous devez associer celui-ci après la création du nœud). Toutefois, si vous déplacez une occurrence d’EventDispatcher, les écouteurs d’événement qui lui sont associés la suivent.
Si un écouteur d’événement est enregistré sur un nœud alors qu’un événement est en cours de traitement sur ce nœud, l’écouteur n’est pas déclenché pendant la phase actuelle, mais il peut l’être pendant une phase ultérieure du flux d’événements, telle que la phase de propagation vers le haut (bubbling).
Si un écouteur d’événement est supprimé d’un nœud sur lequel un événement est en cours de traitement, il est cependant déclenché par les actions en cours. Une fois supprimé, l’écouteur d’événement n’est plus jamais appelé (à moins d’être réenregistré à des fins de traitement ultérieur).
Paramètres
type:String — Type d’événement.
| |
listener:Function — Fonction d’auditeur qui traite l’événement. Cette fonction doit accepter un objet Event comme paramètre unique et ne rien renvoyer, comme illustré ci-dessous :
function(evt:Event):void Le nom de cette fonction n’a aucune importance. | |
useCapture:Boolean (default = false ) —
Détermine si l’écouteur est actif pendant la phase de capture ou pendant les phases cible et de propagation. Si la propriété useCapture est définie sur true , l’écouteur traite l’événement uniquement pendant la phase de capture et non pendant les phases cible et de propagation. Si la propriété useCapture est définie sur false , l’écouteur traite l’événement uniquement pendant les phases cible et de propagation. Pour écouter l’événement dans les trois phases, appelez addEventListener à deux reprises, une première fois en définissant useCapture sur true , puis une nouvelle fois en définissant useCapture sur false .
| |
priority:int (default = 0 ) — Niveau de priorité de l’écouteur d’événement. La priorité est indiquée par un entier signé de 32 bits. Plus le nombre est élevé, plus la priorité est élevée. Tous les écouteurs dont la priorité correspond à n sont traités avant les écouteurs dotés de la priorité n -1. Les écouteurs dont la priorité est identique sont traités dans l’ordre où ils ont été ajoutés. La priorité par défaut est 0.
| |
useWeakReference:Boolean (default = false ) — Détermine si la référence à l’écouteur est forte ou faible. Une référence forte (valeur par défaut) empêche le nettoyage de votre écouteur, Cela n’est pas le cas avec une référence faible. Les fonctions de membres de niveau classe n’étant pas soumises au nettoyage, vous pouvez définir |
Valeur émise
ArgumentError — Le paramètre listener spécifié n’est pas une fonction.
|
Informations complémentaires
dispatchEvent | () | méthode |
public function dispatchEvent(event:Event):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribue un événement dans le flux d’événements. La cible de l’événement est l’objet EventDispatcher sur lequel la méthode dispatchEvent()
est appelée.
Paramètres
event:Event — Objet Event qui est distribué dans le flux d’événements. Si l’événement est redistribué, un clone est automatiquement créé. Après la distribution d’un événement, il est impossible de modifier sa propriété target . Pour que la redistribution fonctionne, vous devez donc créer une copie de l’événement.
|
Boolean — Une valeur true si l’événement a bien été distribué. La valeur false indique un échec ou que preventDefault() a été appelé sur l’événement.
|
Valeur émise
Error — La limite de récursivité relative à la distribution d’événements est atteinte.
|
hasEventListener | () | méthode |
public function hasEventListener(type:String):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. Vous pouvez ainsi déterminer précisément où un objet EventDispatcher a modifié la gestion d’un type d’événement dans la hiérarchie du flux d’événements. Pour savoir si un type d’événement spécifique déclenche réellement un écouteur d’événements, utilisez willTrigger()
.
La différence entre les méthodes hasEventListener()
et willTrigger()
est la suivante : hasEventListener()
examine uniquement l’objet auquel elle appartient, tandis que willTrigger()
recherche dans la totalité du flux d’événements l’événement spécifié par le paramètre type
.
Lorsque hasEventListener()
est appelé à partir d’un objet LoaderInfo, seuls les écouteurs auxquels l’appelant a accès sont pris en compte.
Paramètres
type:String — Type d’événement.
|
Boolean — La valeur true est renvoyée si un écouteur du type spécifié est enregistré. La valeur false est renvoyée dans tous les autres cas.
|
Eléments de l’API associés
removeEventListener | () | méthode |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Supprime un écouteur de l’objet EventDispatcher. Si aucun écouteur correspondant n’est enregistré auprès de l’objet EventDispatcher, l’appel de cette méthode n’a aucun effet.
Paramètres
type:String — Type d’événement.
| |
listener:Function — Objet écouteur à supprimer.
| |
useCapture:Boolean (default = false ) —
Détermine si l’écouteur a été enregistré pendant la phase de capture ou pendant les phases cible et de propagation. Si l’écouteur a été enregistré pendant la phase de capture et pendant les phases cible et de propagation, il est nécessaire d’appeler removeEventListener() à deux reprises pour le supprimer. Appelez useCapture() une première fois en la définissant sur true , puis une seconde fois useCapture() en la définissant sur false .
|
Informations complémentaires
willTrigger | () | méthode |
public function willTrigger(type:String):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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é. Cette méthode renvoie true
si un écouteur d’événement est déclenché pendant toute phase du flux d’événements lorsqu’un événement du type spécifié est distribué à cet objet EventDispatcher ou à l’un de ses descendants.
La différence entre les méthodes hasEventListener()
et willTrigger()
est la suivante : hasEventListener()
examine uniquement l’objet auquel elle appartient, tandis que willTrigger()
recherche dans la totalité du flux d’événements celui qui est spécifié par le paramètre type
.
Lorsque willTrigger()
est appelée à partir d’un objet LoaderInfo, seuls les écouteurs auxquels l’appelant a accès sont pris en compte.
Paramètres
type:String — Type d’événement.
|
Boolean — Renvoie true si un écouteur du type spécifié est enregistré, false dans tous les autres cas.
|
activate | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.ACTIVATE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR obtient le focus du système d’exploitation et devient active. Cet événement est un événement de diffusion, c’est-à-dire qu’il est distribué par tous les objets EventDispatcher pour lesquels un écouteur est enregistré pour cet événement. Pour plus d’informations sur les événements de diffusion, voir la classe DisplayObject.
La constanteACTIVATE
définit la valeur de la propriété type
d’un objet événement activate
.
Remarque : cet événement n’a ni « phase de capture », ni « phase de propagation », ce qui signifie que des écouteurs d’événement doivent être ajoutés directement aux cibles potentielles, que la cible soit dans la liste d’affichage ou non.
Les périphériques AIR pour TV ne distribuent jamais automatiquement cet événement. Il est cependant possible de le distribuer manuellement.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Toute occurrence de DisplayObject à laquelle est associé un écouteur pour l’événement activate . |
Eléments de l’API associés
deactivate | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.DEACTIVATE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. Cet événement est un événement de diffusion, c’est-à-dire qu’il est distribué par tous les objets EventDispatcher pour lesquels un écouteur est enregistré pour cet événement. Pour plus d’informations sur les événements de diffusion, voir la classe DisplayObject.
La constanteEvent.DEACTIVATE
définit la valeur de la propriété type
d’un objet événement deactivate
.
Remarque : cet événement n’a ni « phase de capture », ni « phase de propagation », ce qui signifie que des écouteurs d’événement doivent être ajoutés directement aux cibles potentielles, que la cible soit dans la liste d’affichage ou non.
Les périphériques AIR pour TV ne distribuent jamais automatiquement cet événement. Il est cependant possible de le distribuer manuellement.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Toute occurrence DisplayObject à laquelle est associé un écouteur pour l’événement deactivate. |
Eléments de l’API associés
EventDispatcherExample
et CustomDispatcher
, une sous-classe de EventDispatcher
, pour décrire la création et la distribution d’un événement personnalisé. L’exemple exécute les tâches suivantes :
- Le constructeur de
EventDispatcherExample
crée une variable localedispatcher
et l’affecte à une nouvelle occurrence de CustomDispatcher. - A l’intérieur de
CustomDispatcher
, une chaîne est définie de sorte que l’événement présente le nomaction
et la méthodedoAction()
est déclarée. Lorsqu’elle est appelée, cette méthode crée l’événementaction
et le distribue à l’aide deEventDispatcher.dispatchEvent()
. - La propriété
dispatcher
est alors utilisée pour ajouter l’écouteur d’événementsaction
et la méthode d’abonné associéeactionHandler()
, qui imprime simplement les informations relatives à l’événement lorsque qu’il est distribué. - La méthode
doAction()
est invoquée et distribue l’événementaction
.
package { import flash.display.Sprite; import flash.events.Event; public class EventDispatcherExample extends Sprite { public function EventDispatcherExample() { var dispatcher:CustomDispatcher = new CustomDispatcher(); dispatcher.addEventListener(CustomDispatcher.ACTION, actionHandler); dispatcher.doAction(); } private function actionHandler(event:Event):void { trace("actionHandler: " + event); } } } import flash.events.EventDispatcher; import flash.events.Event; class CustomDispatcher extends EventDispatcher { public static var ACTION:String = "action"; public function doAction():void { dispatchEvent(new Event(CustomDispatcher.ACTION)); } }
Tue Jun 12 2018, 09:30 AM Z