0

我正在创建一个容器作为 MovieClip 并添加一个鼠标滚轮处理程序,然后向其中添加项目,如下所示:

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

但是,鼠标滚轮仅在鼠标悬停在其中一个项目上时才响应,而不是在项目之间容器的可见区域上。有什么方法可以使事件始终在鼠标悬停在容器上时触发,而不仅仅是在其子级上?

我不知道它是否相关,但容器有一个面具集。我尝试将侦听器添加到掩码中,但它没有做任何事情。

如果我将容器的 opaqueBackground 设置为红色,我可以看到容器边界。我不明白为什么当鼠标在这些范围内时鼠标滚轮事件没有触发。如果这真的不可能,是否有另一种方法来处理这种情况而无需容器直接响应鼠标事件?

谢谢你的帮助。

4

2 回答 2

1

“不透明背景区域不响应鼠标事件。”

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

于 2012-03-26T05:06:54.497 回答
0

您可能需要在背景中添加一个矩形以充当边界框。它可以将其 alpha 设置为 0%。问题是,如果光标位于对象的完全透明区域上,它就不会将鼠标事件传递给它,因为它不应该(否则我们总是会被矩形区域卡住);在这种情况下,添加透明背景可以修复它。

于 2010-10-12T15:11:11.063 回答