这点击事件失效了为啥呀,不能这样处理

node1=new cc.Node()
var sprite1 = node1.addComponent(cc.Sprite)
sprite1.spriteFrame = a49 // 纹理也上去了

/ 在场景里面不存在 我克隆了一下他,最后在插入到场景里面 触发事件就失效了
node1.on(cc.Node.EventType.TOUCH_START, function() {
cc.log(11)

    })

// 子场景里面存在
node.on(cc.Node.EventType.TOUCH_START, function() {
cc.log(1)
})
node.addChild(cc.instantaiate(node1))
// 我克隆之后的这个点击事件不答应了

1赞

那你猜是不是cc.instantaiate的问题?

实例化不会复制事件

node 获取对应子元素后,再做监听触摸事件

TOUCH_START 是触摸事件,按钮用 "click"就好了

别瞎说~~~

你node没有大小。

纯脚本写是有什么想不开的吗?

我也不带的左真没复杂的了,很多小细节不知到,一下就出问题了

事已至此,楼主可以这样写

function create_xxx()
    let node1 = new cc.Node()
    let sprite1 = node1.addComponent(cc.Sprite)
    sprite1.spriteFrame = a[49]('a', 'a3') // 纹理也上去了
    node1.on(cc.Node.EventType.TOUCH_START, function() {
        cc.log(11)
    })
    // 子场景里面存在
    node.on(cc.Node.EventType.TOUCH_START, function() {
        cc.log(1)
    })
    return node1
}

node.addChild(create_xxx())

我好久不用函数玩了,直接一条线下来的

所以楼主的情况,需要一个函数。

var node1 = new cc.Node()
var node2 = new cc.Node()
var sprite1 = node1.addComponent(cc.Sprite)
var sprite2 = node1.addComponent(cc.Sprite)
sprite1.spriteFrame = a49 // 纹理又了 ,纹理写法没有出纹理
sprite2.spriteFrame = a49

    var j = this.node.getComponent(cc.Sprite)
    j.spriteFrame = a[49]('c', 'c0') // 获取纹理方法没有问题

    sprite1.type = cc.Sprite.Type.SIMPLE;
    sprite2.type = cc.Sprite.Type.SIMPLE;

    node1.width = 100
    node1.height = 100   //大小又了

    node2.width = 100
    node2.height = 100
    node1.on(cc.Node.EventType.TOUCH_START, function() {
        cc.log(1)
    })
    node2.on(cc.Node.EventType.TOUCH_START, function() {
        cc.log(2)
    })

    this.node.addChild(node1)  //节点插入成功了,节点为啥没给我看出效果,上一次我写就没问题