1.6开始,已经没有WebSocket.cpp这个文件了,我很好奇为什么你的崩溃堆栈会出现这玩意。
1.6中iOS已经是WebSocket-apple.mm文件了
其他平台重命名为WebSocket-libwebsockets.cpp
有报错吗?
md5的问题,为什么不给cocos等文件也增加md5的版本号,我看打包的文件名还是:cocos2d-js-min.js。下次这个文件升级后,如果我用cdn canche了,就没办法更新了呀。这是个隐藏坑!
从 1.5.1更新到1.6.0 beta3版本后,脚本加载顺序好像变了?
64位win7无法用win32模拟器运行,定位到模拟器路径下以后打开simulator.exe,报缺少vcruntime140.dll错误,然后安装64位VC2015运行时库以后,报缺少vcruntime140d.dll错误,下载一个vcruntime140d.dll后则报《应用程序无法正常启动》
感觉是不是不用强制安装VS会更方便点,毕竟很多时候不需要在windows下编译了。
问题 已经解决
主要问题在 机器设备太差导致心跳包 在一定时间内没有到达服务器端 服务器主动断开连接 。在断开连接的时候 websocket 未 =nul 在断开与重连的时间差 中 有心跳包的发送 导致崩溃
解决办法
-
在pomelo 文件中 修改如下 函数
var onclose = function (event) {
cc.log(“onclose”);
pomelo.emit(‘close’, event);
pomelo.emit(‘disconnect’, event);
console.log('socket close: ', event);
if (!!params.reconnect && reconnectAttempts < maxReconnectAttempts) {
reconnect = true;
reconnectAttempts++;
reconncetTimer = setTimeout(function () {
connect(params, reconnectUrl, cb);
}, reconnectionDelay);
reconnectionDelay *= 2;
}socket = null;
};
2 . 调整对应服务器端心跳时间
最后 感谢 触控团队无私的帮助
可用的pomelo整体文件pomelo.zip (14.1 KB)
一样没同步 每次修改js都编译
是不是你动态加载的代码有问题,能否给一个范例,或者你在找找,官方范例并没有问题,你看看 result 是什么数据,先调试一下,这里报的警告就是说没有图片
这里是调用堆栈你跟进去看看
每次更改脚本名称都会报之前那个脚本找不到的错误。然后就启动不了游戏。只有重新启动creator才能恢复正常
1.5.2没问题,到1.6就出事了。官方的范例有动态加载tiledMap?
是不是因为你们加上md5的关系导致文件名和tiled文本数据里的图片名不一致导致的?????
在tiled中保存的是58-1.jpg。可是现在打包后加上md5了。实际上名字应该是58-1.md5数值.jpg吧
有可能,我了解一下,你按照 jare 的方式操作吧
请用 cc.loader.loadRes 加载纹理,textureCache 操作的是最终文件,如果非要用 textureCache 那就只能构建时禁用 md5。
这个问题下个版本会修正
。。。这个代码是你们内部代码。。。 不是我自己写的加载代码
。。。。,好吧,我修复一下
1.6的工程改了代码,构建到android studio还不行,没次都需要“编译”,一次5分钟…编译这玩意儿:libs/armeabi-v7a/libcocos2djs.so 请问这是引擎设定还是我姿势不对?
上面贴子反馈到游戏玩到一段时间后字体会变得很小,今天调了一下终于找到原因了,是js_manual_conversions.cpp
修改引起的,先上图看看问题:
原因发生在js_manual_conversions.cpp
的jsval_to_TTFConfig
函数中,1.6的代码是:
if (JS_GetProperty(cx, tmp, "fontSize", &js_fontSize) && js_fontSize.isInt32())
{
ret->fontSize = js_fontSize.toInt32();
}
if (JS_GetProperty(cx, tmp, "outlineSize", &js_outlineSize) && js_outlineSize.isInt32())
{
ret->outlineSize = js_outlineSize.toInt32();
}
fontSize表现出来的是isDouble,而不是isInt32,所以导致ret->fontSize没被设置到,就用了默认值=12。
而1.5.x的代码是这样的:
if (JS_GetProperty(cx, tmp, "fontSize", &js_fontSize) && !js_fontSize.isUndefined())
{
if (JS::ToNumber(cx, js_fontSize, &fontSize))
ret->fontSize = (int)fontSize;
}
if (JS_GetProperty(cx, tmp, "outlineSize", &js_outlineSize) && !js_outlineSize.isUndefined())
{
if (JS::ToNumber(cx, js_outlineSize, &outlineSize))
ret->outlineSize = (int)outlineSize;
}
仅仅判断isUndefined,所以可以fontSize可以被正常设置到。
@panda @zilong 确认这个问题请回复并修改一下。 这种int和double的隐患会不会也在其他代码中也存在?