Como parar evento mouse Out on Flex Canvas queima para elementos filho
-
05-09-2019 - |
Pergunta
Eu estou usando uma lona itemRenderer para um recipiente que eu uso para exibir imagens. Ver código de pseudo abaixo.
image = new Image();
image.source = data.@thumb;
this.addChild(image);
this.addEventListener(MouseEvent.MOUSE_OVER, enlarge(image));
this.addEventListener(MouseEvent.MOUSE_OUT, shrink(image));
Quando eu mouse sobre a tela, a função de ampliação é chamado. No entanto, logo que eu passar o mouse sobre a imagem, ou outro elemento filho, o evento MOUSE_OUT é acionado.
Alguém pode me apontar na direção de uma maneira de desativar esse comportamento?
Obrigado:)
Solução
Você deve usar MouseEvent.ROLL_OVER
MouseEvent.ROLL_OUT
eventos em seu lugar.
A partir da documentação do Flash CS4:
Quando o mouse entra na área de um objeto de exibição ou a área de qualquer dos seus filhos a partir de um objeto que não é um de seus filhos, o objeto de exibição despachará o evento rollOver. Este é um comportamento diferente do que a do evento mouseOver, que é despachado cada vez que o rato entra na área de qualquer objeto criança do recipiente de exibição do objecto, mesmo se o rato já foi mais um outro objecto da criança do recipiente de exibição do objecto.
Outras dicas
Eu concordo com Josh que os eventos ROLL_OVER
parece mais apropriado para o que você está fazendo. No entanto, você deve estar ciente do mouseChildren
propriedade de flash.display.DisplayObjectContainer
(um antepassado de UIComponent
).
Rollout funciona para mim. Sobre o problema comboBox: Você também pode verificar se o alvo do evento é uma criança do recipiente.