Não entendo a diferença, ambos parecem iguais, mas acho que não.
Qualquer exemplo de quando usar um ou outro seria apreciado.
actionscript-3
events
event-handling
Artemix
fonte
fonte
Respostas:
Ben está completamente correto em sua resposta - então lembre-se do que ele diz. O que eu estou a ponto de dizer que não é uma explicação completa, mas é uma maneira muito fácil de lembrar como
e.target
,e.currentTarget
trabalho em relação a eventos do mouse e a lista de exibição:e.target
= A coisa sob o mouse (como ben diz ... a coisa que aciona o evento).e.currentTarget
= A coisa antes do ponto ... (veja abaixo)Portanto, se você tiver 10 botões dentro de um clipe com o nome de instância "btns" e fizer:
e.target
será um dos 10 botões ee.currentTarget
sempre será o clipe "btns".É importante notar que, se você mudou o MouseEvent a um ROLL_OVER ou definir a propriedade
btns.mouseChildren
como false,e.target
ee.currentTarget
serão ambos sempre "Botões".fonte
currentTarget
sempre é o objeto que está ouvindo o evento;target
é o destino real que recebeu o evento. Por evento borbulhante, o destino recebe o evento e borbulha a lista de exibição. (Ou o contrário para captura de eventos)e.target
é o que aciona o despachante de eventos ee.currentTarget
é o que você atribuiu ao seu ouvinte.fonte
e.currentTarget
é sempre o elemento em que o evento está realmente vinculado.e.target
é o elemento do qual o evento se originou, portanto,e.target
pode ser filho dee.currentTarget
, oue.target
pode ser ===e.currentTarget
, dependendo de como sua marcação está estruturada.fonte
Eu gosto de respostas visuais.
Quando você clica
#btn
, dois manipuladores de eventos são chamados e exibem o que você vê na figura.Demonstração aqui: https://jsfiddle.net/ujhe1key/
fonte
Vale ressaltar que event.target pode ser útil, por exemplo, para usar um único ouvinte para acionar ações diferentes. Digamos que você tenha o típico menu "sprite" com 10 botões dentro, então, em vez de fazer:
Você pode simplesmente fazer:
E desencadeie uma ação diferente em doAction (event), dependendo do event.target (usando sua propriedade name, etc ...)
fonte
faça um exemplo:
quando você clicar em 'btn' e 'true' e 'true' aparecerão!
fonte
O e.currentTarget sempre retornaria o componente no qual o ouvinte de evento é adicionado.
Por outro lado, e.target pode ser o componente em si ou qualquer filho ou neto direto ou bisneto e assim por diante que recebeu o evento. Em outras palavras, e.target retorna o componente que está no topo da hierarquia da Lista de Exibição e deve estar na hierarquia filho ou no próprio componente.
Um uso pode ser quando você tem várias Imagens no Canvas e deseja arrastar Imagens para dentro do componente, exceto o Canvas. Você pode adicionar um ouvinte no Canvas e, nesse ouvinte, pode escrever o código a seguir para garantir que o Canvas não seja arrastado.
fonte
fonte
Se você clicar no elemento filho do botão, é melhor usar currentTarget para detectar os atributos dos botões; no CH, às vezes é problema usar o e.target.
fonte
e.currentTarget é o elemento (pai) onde o evento está registrado, e.target é o nó (filhos) para o qual o evento está apontando.
fonte