我创建了一个prefab,在其中给两个节点 leaf0, leaf1添加了点击事件,为什么总是不响应?
哪里不对??
参见下面截图:
thisleaf0.on(cc.Node.EventType.TOUCH_END,this.onLeafClick.bind(this),this),多看看文档有好处
thisleaf0.on(cc.Node.EventType.TOUCH_END,(event)=>{
cc.log(‘event’:event);
},this)
thisleaf0.on(cc.Node.EventType.TOUCH_END,this.onLeafClick.bind(this),this);
bind(this)没必要
这样
thisleaf0.on(cc.Node.EventType.TOUCH_END,this.onLeafClick.bind(this));
或者
thisleaf0.on(cc.Node.EventType.TOUCH_END,this.onLeafClick.bind,this);
楼上的二位,你们的方法我都试过了,都不行啊。。。
因为你的leaf0长宽为0吧,给设置个width,height就好了
兄弟,我竟然神奇的发现:
let leaf = this.leaf0.getChildByName(“leaf”);//这里获取了子对象
leaf.once(cc.Node.EventType.TOUCH_END,this.onLeafClick,this);
这样竟然就可以了。。。。我的天~这是为啥?初学者很难发现啊。是不是引擎的bug?
就是因为leaf0的长宽为0啊,你事件加在leaf0上,引擎判断的是leaf0的长宽。子节点leaf有图片,长宽不为0,加事件就好使了。
好吧,原来是这样的原理。我的理解是:如果不显示设置其宽高,作为父容器,那么它的宽高应该取决于所有孩子的叠加宽高啊。。看来我错了,不过,非常感谢你的帮助。