MASK导致touch被截,希望赶紧解决

现象如下:
关闭Mask,当点击Button时 自身active为false,a脚本是收不到触摸消息的,整个游戏正常
开启Mask,当点击Button时 自身active为false,a脚本竟然还是会收到触摸消息,导致无法继续游戏

坑了一天了。。。

结构如下
Canvas
—Node大小全屏(带一个MASK和一个a脚本)
—Button(仅仅为了测试,点击调用a脚本的onPopUpClose)

以下是a脚本
cc.Class({
extends: cc.Component,
properties: {
},

// use this for initialization
onLoad: function () { 
    function onTouchDown (event) { 
        Tools.showToast("touch1",0);
        event.stopPropagation(); 
    }
    function onTouchUp (event) { 
        event.stopPropagation(); 
    }
    function onTouchMove (event) {
        event.stopPropagation(); 
    }
    this.node.on('touchstart', onTouchDown, this.node);
    this.node.on('touchend', onTouchUp, this.node);
    this.node.on('touchcancel', onTouchUp, this.node);
    this.node.on('touchmove', onTouchMove, this.node);
},
onPopUpClose:function(){
    this.node.active=false;
},

});

目前临时解决办法就是在Node下面再挂一个空node来做mask,也就是不放在带脚本的node上。。

哦对了,说一句,web上正常,模拟器和android上都不行

请问你是不是在node的active=false的情况下添加的触摸监听?(或者你以为是先添加监听再active=false,实际上执行顺序是先active=false,再添加监听)如果是的话就会出现这个问题,这个问题官方大神已经在解决了,还有你说的自身是mask还是button?

是先注册的,这个跟注册没关系,而跟加不加mask组件有关系

收到反馈,这个问题已经发现了,下个版本就会修复

刚刚试了一下,的确有这个问题:joy:

已修复:

https://github.com/cocos-creator/engine/pull/825

恩恩,等待1.1.2版本~谢啦,希望出一个creator定制jsb的教程谢谢

绑定的教程可以先看这两篇

  1. https://zhuanlan.zhihu.com/p/20525026
  2. https://zhuanlan.zhihu.com/p/20525109

这个只是概念,没有实操,而且在creator上感觉完全不一样的位置。比如我用自动绑定生成了Cpp和hpp还有js,我应该放到哪里,我应该怎么重新编译,我应该怎么调用。。完全没头绪哎。大神希望能有个简明绑定教程,只需要过程

:joy: JS 绑定的原理其实比操作更重要,因为过程中出现问题的几率比较大,如果不理解背后原理,会觉得坑很多。其实理解了以后,这个工具可以很自由得进行使用,很强大。

@Knox 啥时候出个简明教程

那定制引擎的文档呢?我自己从C++这边封装一些接口到js呢?跟jsb是不是类似?具体要怎么编译呢

http://www.cocos.com/docs/creator/advanced-topics/engine-customization.html