木灵鱼儿

木灵鱼儿

阅读:120

最后更新:2022/07/25/ 19:46:38

Cocos Creator 事件穿透

前言

Cocos Creator 中可以通过挂载 BlockInputEvents组件来防止事件穿透,但是如果我们想让它能够事件穿透,官方的文档只字不提。

这个需求也是有场景的,比如我们有两个元素,A和B,B会浮动到A上,从而导致click被B给挡住了,从而A事件无法触发了,这种场景在打地鼠游戏中是常见的。

解决办法

我们需要给挡住的那个元素添加允许事件穿透,用上面的例子,那就是需要给B节点添加一个事件穿透。

import { _decorator, Component, Node } from "cc";
const { ccclass, property } = _decorator;

@ccclass('B')
export class B extends Component {
  onLoad () {
    this.node.on(Node.EventType.MOUSE_DOWN, this.onMouseDown, this);
  }

  onMouseDown(event: EventMouse) {
    event.preventSwallow = true;   //设置为true
  }
}

event设置一个属性为true就行了,这是目前可以使用的办法,指不定官方啥时候又改了,且用且珍惜。

参考

support preventSwallow on EventMouse && EventTouch

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 68
文章被阅读 120

相关文章