actionscript-3 – 如何在AS3中透明地处理mouseEvent?
发布时间:2020-12-15 07:22:54 所属栏目:百科 来源:网络整理
导读:我有一个DisplayObject停靠在我的界面顶部,显示调试信息(每秒帧数等),半透明,alpha为60%. 我想与此表面下的项目进行交互,这样当鼠标滚过它时,它会变暗到10%alpha,并且鼠标事件会通过它传递给底层对象. 通常,我将此调试信息面板的mouseEnabled和mouseChildr
我有一个DisplayObject停靠在我的界面顶部,显示调试信息(每秒帧数等),半透明,alpha为60%.
我想与此表面下的项目进行交互,这样当鼠标滚过它时,它会变暗到10%alpha,并且鼠标事件会通过它传递给底层对象. 通常,我将此调试信息面板的mouseEnabled和mouseChildren属性设置为false,因此其下的对象接收鼠标事件. 问题是,为了在鼠标滑过它时隐藏它,它需要将mouseEnabled设置为true.但是,如果mouseEnabled为true,则鼠标事件不会被其下方的对象拾取. 据我所知,我无法有选择地启用mouseEvents,因此它要么全部接收它们,要么都不接收它们.这意味着如果采用这种方法,我必须处理和转发所有事件. 我真的希望mouseEnabled属性具有“窥视”模式或其他东西,以便它可以接收事件,如果它在顶部,但也允许它们传递到下面的对象. 解决方法
如果DisplayObject具有mouseEnabled = true,则意味着它的事件将被发送到其容器,而不是在对象下面.所以这个解决方案不起作用.最好的解决方案是使用getObjectsUnderPoint手动重新路由事件,如
here所述.
我多年来一直在多点触控应用程序中使用这种方法.有多个触摸点,我没有看到任何处理器开销.而你只有一个光标. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |