- Creator 版本:
eventProcessor 这个api被替换成哪个了呢?
eventProcessor 这个api被替换成哪个了呢?
3.4.0 我们推荐直接使用 node 来做节点的事件管理
为了实现事件的节点穿透派发,之前社区有一些临时方案,是通过访问一些 eventProcessor 的私有变量来实现,3.4.0 里我们推荐使用 event.preventSwallow = true
来实现这个需求,
如果要实现事件的节点穿透派发,可以参考下这个 PR 里的使用案例
https://github.com/cocos-creator/engine/pull/9621
event.preventSwallow = true是否只能控制父节点对子节点的透传?而平级节点无效呢?
大佬,我使用的版本为3.4,有两个克隆的物体接收事件,两个物体是透明第有可能相交,我使用了PolygonCollider2D设置了轮廓,使用Intersection2D.pointInPolygon进行判定区域,如果是区域内的不透传事件,不在区域内的不透传,但是压在上面的物体会把事件截住,下面的物体收不到点击事件,代码如下
_onBeginTouch (touch:EventTouch) {
let touchUILc = touch.getUILocation()
if (this.planePc2D!=null) {
console.log(this.planePc2D.worldPoints)
if (Intersection2D.pointInPolygon(touchUILc, this.planePc2D.worldPoints)){
// 标记本体已经被选中
console.log("001 debug《=============点击范围在可选范围以内")
if (this.node!= null) {
let pos = this.node.getWorldPosition()
this.posOffX = pos.x - touchUILc.x
this.posOffY = pos.y - touchUILc.y
}
console.log("001 debug《=============发起移动事件")
touch.preventSwallow = true;
} else {
touch.preventSwallow = false;
}
}
}
有效的 123
是有效的,看你的实现逻辑没什么问题,方便提供一下 demo 吗
谢谢大佬,已经解决了
我的问题出在TOUCH_MOVE事件上
如果我不给所有的显示物体增加TOUCH_MOVE事件的处理函数,事件默认会被最外面的物体中断,我把全部的物体都加入判定就解决了这个问题,
再次感谢大佬们的回复,非常荣幸能使用cocos进行开发和能加入这个社区
两个scrollView嵌套(scrollA、scrollB),scrollB是scrollA自己点,scrollB中有若干子项,子项上有button,触摸发生在button上时,无妨穿透到scrollA