我有一个DisplayObject停靠在界面的顶部,该DisplayObject显示调试信息(每秒帧数等),并且半透明,alpha为60%。

我想与该表面下的项目进行交互,这样,当鼠标滑过它时,它会变暗为10%的alpha,并且鼠标事件会通过它传递给基础对象。

通常,我将此调试信息面板的mouseEnabled和mouseChildren属性设置为false,因此它下面的对象会接收鼠标事件。

问题是,为了在鼠标悬停时将其隐藏,需要将mouseEnabled设置为true。但是,如果mouseEnabled为true,则鼠标事件不会被其下面的对象拾取。

据我所知,我无法有选择地启用mouseEvents,因此它要么全部接收要么都不接收。这意味着,如果我采用这种方法,则必须处理并转发所有事件。

我真的希望mouseEnabled属性具有“窥视”模式或其他某种方式,以便它可以接收事件(如果事件位于顶部),但还允许它们传递到下面的对象。

最佳答案

如果DisplayObject具有mouseEnabled=true,则意味着其事件将发送到其container而不是发送到该对象下面的任何内容。因此,此解决方案将不起作用。最好的解决方案是按照here所述使用getObjectsUnderPoint手动重新路由事件。

多年来,我一直在多点触控应用程序中使用这种方法。有了多个接触点,我看不到任何处理器开销。而且您只有一个光标。

08-03 22:47