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:)

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top