jsb脚本出错位置不明确

还是麻烦你帮我看下,实在是搞不定,用模拟器运行是好的,下面会出现一排麻将子的SPRITE,用浏览器运行就没有那一排,而且没有任何报错。

creator.rar (1.3 MB)

问题找到了,在你的mahjong.js文件里的start函数里

你使用了cc.director.getScheduler().schedule,我去查看了api,这个计时器一共有六个参数,分别是function, target, interval, repeat, delay, paused,但是你的参数列表少了一个delay,加上就没问题了

但是为啥在模拟器下是正常的,我猜可能是native下的实现和web的实现有差别

晕死,这错误我还真不知道该怎么查,关键是creator这种问题应该要能报错出来。
多谢你了。

其实查问题很简单的,哪里出错查哪里,就像你的项目,我一行代码都看不懂(我英语从来没有及格过),但是你出问题的地方就是你显示的地方,所以只要检查你显示的逻辑,问题很快就查出来了,如果不好查的,一步一步打log或者下断点查,而且大部分情况下浏览器的控制台会定位错误的具体位置,你这个错误比较特殊,native下是正常的,web端不正常,所以无法找到错误的具体位置

creator里我都只能打Log,不太会用浏览器调试,这个错误就完全不知道怎么回事了。
主题里的头个错误还没解决,我自己再看看,因为我把整个目录拷贝出来再用creator运行就没有错误了,回到老目录还是错误。而老目录是SVN的目录,不好删,我自己再试试先。

嗯,如果不是太底层的东西,我想我也可以帮你看看:grin:

问题是你那没法重现,我发给你的就是原样的目录,都没有报错,刚刚把几个没用的目录删了,再开CREATOR重建也是一样报错。只能自己想办法了,看看覆盖回去可以不。

你现在是啥错误呢?

你好这个错误应该是你用 ES6 的方式定义了 class,并且继承自了引擎用 CCClass 定义的类。如果是这个原因,目前报错的行号确实没办法解析出来,这是一个底层问题我们会放到后期再来解决。

如果是其它报错,我们都会显示出源文件中的行号,一般不会出现bundle.project.js的错误信息

刚刚删除了SVN里的目录,用备份的目录覆盖过去,又没有这个错了,呵呵,真是怪得很。
另外,我用了ES6的class定义方式,但是没有继承自ccclass,都是直接用的class,然后自己继承下去。

麻烦那你也帮我看下好吗?
creator.rar (1.1 MB)

回家试了还是有问题,而且试出了是\assets\script\lib\wsclient.js这个文件的问题,删了就不会报错,不删就会报错,麻烦你帮我看看好吗?
源码在上楼,谢谢了。

额,我根本没看过es6长啥样,所以也帮不了你,不好意思:joy:

你那里也会报这个错误吗?

会,但是es6我一点都不了解:joy:所以无法帮到你

哈罗,经过验证,只要 ES6 有继承,模拟器就会有这个报错!看来 Babel 的实现还是不够优化啊!建议你通过

function base {

}

function sub {

}

cc.js.extend(sub, base);

的方式实现 JS 的原生继承,或者直接使用 CCClass 实现继承。至于报错信息,我们会继续完善!

我现在是服务端和客户端都共享同一个文件,所以不太想改成以上的继承模式,所以问两个问题:
1.出错信息里所说的性能会很差(用这种模式),是不是真的。

2.以后会不会修复这个问题。

因为如果只是暂时的,那我可以无视这个信息,如果无法修复,那我就只能把服务端和客户端的代码都改成没有语法糖的方式了。

要我用cc.js.extend的话不太现实,毕竟服务端没有cc。

能给个确定的信息吗?我这边好改程序.

这是 SpiderMonkey 给的提示,你可以测试下,具体我也不太清楚,V8 和 Chrome 应该没这个问题。

这是 Babel 引起的,要看之后它的版本会不会改进继承的实现方式,不过估计可能性不大

你可以把源码里的那个 extend 方法复制出来单独使用,你也可以用其它任何方法实现继承。JS 的继承写法网上非常多。

谢谢,以前一直是用的网上找的写法,那天看cc和nodejs都支持es6了,想着用标准写法会兼容一些,就都改成了es6的class,改得要死,没想到又要改回去,晕死。