Видеоклип AS3 не отвечает на событие Mouse_Wheel

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

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

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

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

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

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


person RNC    schedule 05.10.2010    source источник


Ответы (2)


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

Источник: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#opaqueBackground

person Viktor Nordling    schedule 26.03.2012

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

person zeh    schedule 12.10.2010