@704436993 写道:
这个ToggleParticle中ParticleControl的js有个小错误。在用空格触发的监听事件中,target 应该是 self.node, 范例里面是self.
除此之外我有一个问题。这是范例里面的玩家输入事件监听(改成了鼠标mousedown触发):
setInputControl: function () {
var self = this;
cc.eventManager.addListener({
event: cc.EventListener.MOUSE,
onMouseDown: function(event) {
if (event === mousedown) {
self.toggleParticlePlay();
}
},}, self.node); },
然后我用了另外一种常用的监听
setInputControl: function() {
var self = this;
this.node.on('mousedown', function(){
this.toggleParticlePlay()
},this);
},我发现在玩家输入事件监听中,如果在mousedown回调函数中还是用this而不是self,那么this就是全局作用域,而self是ParticleControl的节点作用域。这个没有什么问题。
但是如果用第二种常用的监听, 那么self 和 this在mousedown回调函数中都还是指向ParticleControl本身。也就是说var self = this;这句话就没有作用了。请问这是为什么啊?
帖子: 3
参与者: 1