两年再回头来使用creator一万只草泥马在心中奔腾

几年没撸了,朋友说cocoscreator现在根unity一样,于是玩了下,结果。。。

onLoad () {
netControl.connect();

    this.sceneLogin = cc.instantiate(this.preLogin);
    //this.sceneLogin.active = true;
    this.node.addChild(this.sceneLogin);
    

    this.sceneRegister = cc.instantiate(this.preRegister);
    //this.sceneRegister.active = false;
    this.node.addChild(this.sceneRegister);
     
    
 },

为什么注释了两行,就可以跑,打开注释,无数条这个错误:Simulator: E/jswrapper (271): ERROR: Uncaught TypeError: Cannot read property ‘length’ of null, location: src/cocos2d-jsb.js:0:0

没发现你这里有什么问题 你的sceneRegister身上有挂脚本么? 隐藏后还有什么操作么?

重启编辑器啊 万能重启大法

先加到节点上 再设置 active 试试

先添加在节点上,然后再设置也是一样报错。

根据你的思路,实验了,删除预制体上的脚本和不删除,还是一样那个错误,说明和预制体挂不挂脚本无关

重启也是一样的啊,试过了

我是按照你贴的代码试验了一下 没复现出你的问题才猜测脚本问题的。你试下新建场景 生成两个新节点的预制体试试。

某个地方用了length 而它本身值被你弄成null了 就你这智商 还是继续弃坑吧

2赞

感谢 IMI4197,我找到问题了,cocos creator 脚本使用正确姿势,应该是场景中的脚本,最好不要和场景中子节点共用一个脚本,比如 用预制体作为场景中的子节点,应该单独给他写一个对应脚本,而不是公用,这样理解对吗? 现在网络,心跳,发送,协议调通了,就差一步一步砌砖了。

公用可以 但是你需要注意组件中的一些生命周期回调的使用。

组件开发,有什么公用不公用的。最简单的使用场景:角色prefab挂着Player脚本,可以直接拖scene里,也可以实例化挂到场景子节点。

连哪句代码报错都没搞清,就各种删预制体脚本测试?连基本debug都不会吗。

明明自己代码问题,非要起个骇人听闻的标题?还整个“正确姿势”误导别人。

你说得对,又进步了,就是你说的问题。

同意你说的,连this指代哪个都搞不清楚,还起了这么个标题

搞懂了,搞懂了,cocos creator 学起来还是快啊,问题解决了,麻烦帮我删下帖子啊。