cc.find获的的节点无法绑定监听事件

在场景中创建好节点:
image
代码里通过cc.find来获取节点:

let button  = cc.find("Canvas/TestNode");
button.on(cc.Node.EventType.TOUCH_START, (e) => {
    SDKUtils.log("click")
}, this)

但实际运行时报错:


这个有点不太明白,没有父节点的意思么?但是我打印了找到的节点是有父节点的:

求助大佬们帮忙指点下。

你这不是节点报错,应该是sdk报错了

去掉给button绑定的on事件后就能恢复正常,不像是SDK的问题,感觉是节点少了什么东西

不是showAd里报的错嘛?

那你把SDKUtils.log改成console.log呢

showAd是我上边发的代码块所属的方法,实际报错的地方在最后几行:
at window.gameTick ((no filename):1:57280)

SDKUtils.log 我觉得也是这个代码报错的。

SDKUtils.log改成console.log试过了也是不行,点击事件内什么都不做还是不行,好像就跟on事件过不去似的

this去掉
button.on(cc.Node.EventType.TOUCH_START, (e) => {
SDKUtils.log(“click”)
})
这样就好,你这个=>函数,哪来的调用target

问题解决了。
首先这个报错并不影响点击事件,准确的说点击事件是正常进行的,之所以一开始点击无效果就归结于上面的报错,是因为点击事件中没有进行阻止冒泡。既然点击可以正常进行,那报错信息就应该是代码块的其他部分的问题,经检查是给一个未定义的按钮节点设置父节点造成的:
this.buttonNode.parent = this.rootNode;
而这个 this.buttonNode 未定义又是因为自己用 cc.find("Canvas/TestNode") 找到的节点没有赋值过去,应该这么写的:
this.buttonNode = cc.find("Canvas/TestNode")

问题已经解决了,是我的代码逻辑不严谨以及排查问题的优先级不明确导致的,感谢帮忙~

问题已经解决了,是我的代码逻辑不严谨以及排查问题的优先级不明确导致的,感谢帮忙~
之前测试了下,去掉this没啥变化的

问题已经解决了,是我自己的问题,谢谢帮忙啦

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。