Как остановить событие Mouse Out на Flex Canvas, запускаемое для дочерних элементов

StackOverflow https://stackoverflow.com/questions/557028

Вопрос

Я использую Canvas ItemRenderer для контейнера, который я использую для отображения изображений.Смотрите псевдокод ниже.

image = new Image();
image.source = data.@thumb;
this.addChild(image);
this.addEventListener(MouseEvent.MOUSE_OVER, enlarge(image));
this.addEventListener(MouseEvent.MOUSE_OUT, shrink(image)); 

Когда я наведу курсор мыши на холст, вызывается функция увеличения.Однако, как только я навожу курсор мыши на изображение или другой дочерний элемент, запускается событие MOUSE_OUT .

Кто-нибудь может указать мне на способ отключить это поведение?

Спасибо :)

Это было полезно?

Решение

Вы должны использовать MouseEvent.ROLL_OVER и MouseEvent.ROLL_OUT события вместо этого.

Из документации Flash CS4:

Когда мышь попадает в область отображаемого объекта или в область любого из его дочерних объектов от объекта, который не является одним из его дочерних объектов, отображаемый объект отправляет событие ролловера.Это поведение отличается от поведения события наведения курсора мыши, которое отправляется каждый раз, когда мышь попадает в область любого дочернего объекта контейнера отображаемых объектов, даже если мышь уже была над другим дочерним объектом контейнера отображаемых объектов.

Другие советы

Я согласен с Джошем в том, что ROLL_OVER события кажутся более соответствующими тому, что вы делаете.Тем не менее, вы должны быть осведомлены о mouseChildren свойство flash.display.DisplayObjectContainer (предок UIComponent).

Развертывание работает для меня.О проблеме со списком со списком:Вы также можете проверить, является ли цель события дочерней из контейнера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top