加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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所述.

我多年来一直在多点触控应用程序中使用这种方法.有多个触摸点,我没有看到任何处理器开销.而你只有一个光标.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读