新人求助,触摸事件监听问题~

自学cocos creator两个月,在学习中开发自己的第一款软件,然后遇到了如下问题,在网上找了好久没得到解决方法,希望大佬能指点一下。

我想实现这样一个功能:在屏幕上点击一次或者触摸一次bar0(它是node类型),在bar0处生成一个NewNote(它是prefab类型)。

我的代码如下:

cc.Class({
    extends: cc.Component,

    properties: {
    	NewNotePrefab:{
    	    default:null,
    	    type:cc.Prefab
    	},
    	bar0:{
    	    default:null,
    	    type:cc.Node
    	},
    },

    setNoteFunction:function(){
       	var NewNote = cc.instantiate(this.NewNotePrefab);
    	NewNote.parent = this.bar0;
    	NewNote.setPosition(0,0);
    },
    
    onLoad () {
    	this.bar0.on("touchstart",function(){
    		this.setNoteFunction();      //请问这行代码不执行的原因是什么呢?
    	});
    },

    start () {

    },
});

bar0 你写的是bar1…

谢谢指正,但是,我在该为bar0之后,也没有什么变化发生

放在start中试试

this.bar0.on(‘touchstart’, function (event) {//传回节点位置
this.setNoteFunction(); //这样应该执行了吧
}, this);

1赞

//触摸-开始
this.voiceButton.node.on(cc.Node.EventType.TOUCH_START, (object, tab) => {
});
//触摸-移动
this.voiceButton.node.on(cc.Node.EventType.TOUCH_MOVE, (object) => {
});
//触摸-结束
this.voiceButton.node.on(cc.Node.EventType.TOUCH_END, () => {
});
//触摸-不再屏幕
this.voiceButton.node.on(cc.Node.EventType.TOUCH_CANCEL, () => {
});

哇!!好棒好报,真的行了耶!为什么,大佬能给我详细解释一下吗?:grinning:
我又试了一下,关键问题就在 ,this 为什么加上它就可以了呢?

先去学下js的基础,要不会有更多疑问

JS的回调函数要绑定调用者

1赞

好的,谢谢