Видеоклип AS3 не отвечает на событие Mouse_Wheel - PullRequest
0 голосов
/ 05 октября 2010

Я создаю контейнер как MovieClip и добавляю обработчик колесика мыши, затем добавляю к нему элементы следующим образом:

container = new MovieClip();        
addChild( container );
container.addEventListener( MouseEvent.MOUSE_WHEEL, HandleWheel );
container.addChild( item );
// etc. adding more items 

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

Я не знаю, имеет ли это отношение, но в контейнере установлена ​​маска.Я попытался добавить слушателя к маске, но он ничего не сделал.

Если я установил opaqueBackground контейнера в красный цвет, я смогу увидеть границы контейнера.Я не понимаю, почему событие колеса мыши не срабатывает, когда мышь находится в этих пределах.Если это действительно невозможно, есть ли другой способ справиться с ситуацией, не требуя, чтобы контейнер реагировал непосредственно на события мыши?

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 26 марта 2012

"Непрозрачная фоновая область не реагирует на события мыши."

От: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#opaqueBackground

0 голосов
/ 12 октября 2010

Возможно, вам понадобится добавить прямоугольник к фону, чтобы он действовал как ограничивающий прямоугольник. Это может иметь его альфа, установленный на 0%. Проблема заключается в том, что если курсор находится в полностью прозрачной области объекта, он просто не будет передавать ему события мыши, как это не должно быть (в противном случае мы всегда застряли бы с прямоугольными областями); в этом случае добавление прозрачных фонов исправляет это.

...