Creator 的 button 组件拖动不触发父节点或 camra 节点的触摸事件??

比如说,我一个大地图上有很多建筑,点击建筑会有弹层。
又或,一个大地图有很多城池,点击城池会有弹层。
如果建筑,或城池我做成buttion有话,那拖动城市或者建筑,地图就不会被拖动。
调试发现,拖动城市或建筑,不会触发父节点的touchmove事件,或者camera的touchmove事件。
这个问题目前解决办法吗?
网上查过,似乎给button节点上加touchmove事件,里面写
stoppropagationimmediate
但亲测无效。
大家就没有遇到拖动按纽不会拖动地图的事情吗?都怎么解决的。
难道要在这个情况下放充button组件,直接在node里 on touchend 吗?
那不是要自己按纽效果????

是的,就是要自己做

Button组件不会向后冒泡触摸事件。想个办法把触摸事件向后发送出去。

const {ccclass, property} = cc._decorator;

@ccclass
export default class EventPass extends cc.Component {

@property([cc.Node])
private targetNodes:cc.Node[] = [];

@property
private touchStart:boolean = false;
@property
private touchMove:boolean = false;
@property
private touchEnd:boolean = false;

onEnable(){
    if(this.touchStart)
        this.node.on(cc.Node.EventType.TOUCH_START,this.passEvent,this);
    if(this.touchMove)
        this.node.on(cc.Node.EventType.TOUCH_MOVE,this.passEvent,this);
    if(this.touchEnd)
        this.node.on(cc.Node.EventType.TOUCH_END,this.passEvent,this);
}

onDisable(){
    if(this.touchStart)
        this.node.off(cc.Node.EventType.TOUCH_START,this.passEvent,this);
    if(this.touchMove)
        this.node.off(cc.Node.EventType.TOUCH_MOVE,this.passEvent,this);
    if(this.touchEnd)
        this.node.off(cc.Node.EventType.TOUCH_END,this.passEvent,this);
}

private passEvent(event: cc.Event) {
    for (let i = 0; i < this.targetNodes.length; i++) {
        this.targetNodes[i].emit(event.type, event);
    }
}

}