Je ne comprends pas la différence, ils semblent tous les deux pareils mais je suppose qu'ils ne le sont pas.
Des exemples de quand utiliser l'un ou l'autre seraient appréciés.
Je ne comprends pas la différence, ils semblent tous les deux pareils mais je suppose qu'ils ne le sont pas.
Des exemples de quand utiliser l'un ou l'autre seraient appréciés.
Ben c'est tout à fait correct dans sa réponse, alors conservez ce qu'il dit dans l'esprit. Ce que je vais vous dire n'est pas une explication complète, mais c'est un moyen très facile de se rappeler comment e.target
, e.currentTarget
travail en relation avec les événements de la souris et de la liste d'affichage:
e.target
= La chose en vertu de la souris (comme ben dit... la chose qui déclenche l'événement).
e.currentTarget
= La chose avant de la dot... (voir ci-dessous)
Donc, si vous avez 10 boutons à l'intérieur d'un élément avec un nom d'instance de "btns" et que vous faites:
btns.addEventListener(MouseEvent.MOUSE_OVER, onOver);
// btns = the thing before the dot of an addEventListener call
function onOver(e:MouseEvent):void{
trace(e.target.name, e.currentTarget.name);
}
e.target
sera l'un des 10 boutons et e.currentTarget
sera toujours le "btns" clip.
Il est intéressant de noter que si vous avez modifié le MouseEvent à un ROLL_OVER ou définir la propriété btns.mouseChildren
false, e.target
et e.currentTarget
permettra à la fois d'être toujours "btns".
MODIFIER
Pour plus d'info buter les événements, j'ai écrit ce blog quelques années en arrière, aide, si vous voulez comprendre la formation de bulles, la phase de capture etc:
http://www.learningactionscript3.com/2007/11/10/event-phases-in-action/
Il est à noter que event.target peut être utile, par exemple, pour utiliser un seul écouteur pour déclencher des actions différentes. Disons que vous avez le sprite typique « menu » avec 10 boutons à l’intérieur, donc au lieu de faire :
Vous pouvez tout simplement faire :
Et déclencher une action différente au sein de la doAction(event) selon la event.target (à l’aide de sa propriété name, etc....)
e.currentTarget serait toujours le retour de la pièce sur laquelle l'écouteur d'événement est ajouté.
D'autre part, l'e.la cible peut être le composant lui-même ou tout enfant ou grand enfant ou grand-grand-enfant et ainsi de suite qui a reçu l'événement. En d'autres termes, l'e.cible renvoie le composant qui est sur le haut dans la Liste d'Affichage de la hiérarchie et doit être dans la hiérarchie enfant ou le composant lui-même.
Une utilisation peut-être quand vous avez plusieurs Images en Toile et vous souhaitez le faire glisser les Images à l'intérieur du composant, mais la Toile. Vous pouvez ajouter un listener sur la Toile et dans celui de l'écouteur vous pouvez écrire le code suivant pour vous assurer que la Toile n'aurais pas traîné.
function dragImageOnly(e:MouseEvent):void
{
if(e.target==e.currentTarget)
{
return;
}
else
{
Image(e.target).startDrag();
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.