一个prefab 多个实例, 绑定事件? 能指教哈吗?

var tPrefab = cc.instantiate(that.cardPrefab);
tPrefab.parent = this.node;
tPrefab.setPosition(-210,100);


this.canvas.on(cc.Node.EventType.TOUCH_START, function (event) {
console.info('xxx');
console.info('onTouchBegan');
var action = cc.moveTo(0.1, 0, 20);

tPrefab.runAction(action);
event.stopPropagation();
}, this);


var tPrefab2 = cc.instantiate(that.cardPrefab);
tPrefab2.parent = this.node;
tPrefab2.setPosition(-210,10);

奇怪的是, 点击第二个实例缺可以触发第一个

看不懂你的代码,你还是做个demo吧:hushed:

that.cardPrefab生成两个实例, 给第一个绑定事件 。 但点击第二实例,却触发了第一个。
这样是说 能懂吗? 这就是个demo,that.cardPrefab就是一个prefab

你的 TOUCH_START 事件是注册在 canvas 上面的,也就是整个画布都会响应你的事件并让第一个节点运动起来。

你需要的可能是

tPrefab.on(cc.Node.EventType.TOUCH_START, function (event) {
...

this.canvas是第一个实例吗?

反正我是没看出来,哪里给第一个prefab和第二个prefab注册了事件。。。

换成tPrefab了。 还是不行呢。 在帮忙看看 我用cc.eventManager.addListener 绑定的事件

我上传了demoNewProject.zip (2.7 MB)

这个绑定的事件是全局事件,你需要用node.on来绑定节点上的事件

换成tPrefab了。 还是不行呢。 在帮忙看看

我上传了demo NewProject.zip (2.7 MB)

1.你的prefab没有大小,size为0,0,所以你永远点击不到

2.如果要输出控制台消息,建议用cc.log,,console.info在模拟器下报错

脚本实例化出来的预设,上没有脚本。
SIZE大小是0 0,好像点不到。

3Q 已解决 size 为0的原因