node.on 里面怎么识别不出来node是谁啊

image

this.node 就找不到坐标转换的函数。设置成子节点的父节点就可以找到,可是上面我明明设置了this.node.addchild

有没有绑定this?

应该是没有绑定this,这里this不是你想要的那个,你这里定义了self=this,可以用self.node代替

可以定义在on最后加上this参数即可,this.node.on(eventName, function, this)

把你的 function(){} 替换成()=>{},就不用绑定 this 也可以了

emmm,虽然我挺习惯用箭头函数的,但是注册事件我倒是一直都没用箭头函数…主要是注销的时候临时写的方法不好注销

我也不喜欢用匿名函数,我是看他用的匿名函数才这么建议的

hi,感谢回复,我上面打印的this.node 是我想要的, 你的意思是在我的监听函数里面需要绑定this嘛,请问这里该如何绑定呢

感谢各位的热心帮助泪崩了,从C++跳script真是不懂,困扰我好几天了

你是说界面绑定还是上面的程序块

hi ,这是JavaScript的要求嘛,这个this。node.on 下面的代码快里面的this指针指向变了嘛

上面的代码
this.node.on(cc.Node.EventType.TOUCH_START, function(event){

        // do something

    }.bind(this));

    this.node.on(cc.Node.EventType.TOUCH_START, ()=>{

        // do something

    });

随便选一个用

我也是转的js,这块是js变量冒泡查找的问题,我也没整明白,只是知道怎么能用

1赞

回调里event.target,就是on的负责人

这里的bind this 指的是在该函数体里面this = this.node?

我理解的是绑定function里的this为外层onLoad的this,这样在函数里this.node就是onLoad里面的this.node了

代码里都有var self = this了, 在 内部 function 里 还用this。 箭头函数,绑定或者用self 代替this 都可以。

强力推荐 用let 替换 var,解决 var 作用域的问题。

bind(this)后,函数体里面的this就是指当前脚本,this.node是挂载当前脚本的节点

1赞

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