Cocos Creator v1.8.1 发布啦!
2018.01.17 by cocos
版本更新

引擎团队秉承发布小版本重在修复而不是增加大功能的一贯理念,本次发布的 v1.8.1 版本主要在 1.8 的基础上修正 bug、完善微信小游戏支持,修复了一些原生平台崩溃问题,建议所有开发中的项目进行升级。

详细改动列表如下:

微信小游戏

[Editor] 发布到微信小游戏时,默认禁用 ES6 to ES5 选项
[Engine] 修复 1.8.0 网页中无法引入微信 jssdk,会导致环境误判的问题
[Engine] 修复在微信小游戏上前后台切换时,EVENT_SHOW, EVENT_HIDE 不会触发的问题

特色功能

[Editor] 在 Windows 上双击脚本时先提示用户设置脚本编辑器,避免系统默认 Host 弹出报错
[CocosStudio] 完善 CocosStudio 项目导入
- 不再为 Position 为 0% 的节点添加 Widget 组件
- 支持导入动画帧事件
- 修复导入多层嵌套的动画不能正确关联的问题
[Engine] 新增获取 iPhone X safe area 的接口(cc.view.getSafeAreaRect 和 cc.director.getSafeAreaRect)
[Engine] 自动隐藏原生 iPhone X 的 home indicator

Bug 修复

[Editor] 修复特殊情况下发布后的项目 JS 会包含无效符号的问题
[Engine] 修复 creator.d.ts 中 `__ctor__` 引起的乱码
[Engine] 修复原生平台 invokeJSTouchOneByOneCallback 内潜在的崩溃问题
[Engine] [JSB] 修复 JS 获取原生的 Scheduler, ActionManager, EventDispatcher 等对象后有概率会崩溃的问题
[Engine] [JSB] 修复原生平台 event.stopPropagation() 会停止所有 touch point 的问题
[Engine] [JSB] 修复 iOS 在极端情况下的崩溃问题
[Engine] [JSB] 修复在 iOS 9 以下 createTypedArray 返回 null 的问题
[Engine] [JSB] 修复 1.7.0 以后原生平台上 TiledMap 未绑定 getTiles 接口的问题
[Engine] 修复原生平台上 TiledMap 潜在的内存释放问题
[Editor] 修复场景编辑器错误的分布图标
[Editor] 修复 Windows 下 MD5 Cache 会修改用户代码的问题
[Engine] 修复 physics AABB 碰撞回调
[Spine] 修复 spine 在调试模式下激活时会重复创建渲染对象的问题
[Camera] 修复 camera 在原生平台上未激活时就启用的问题
[Engine] 修复模块裁剪时只勾选 Intersection 的情况下获取不到 Intersection 的问题
[Engine] 修复 ScrollView 被缩放后效果错误
[Engine] 修复 RenderTarget 缩放问题
[Engine] 修复 PageView.scrollToPage 不能正确判断范围的问题
[TiledMap] 修复 Tilemap 的 layer 没有元素时的报错
[DragonBones] 修复 Web 平台上 DragonBonesData 名字相同,骨骼数据不同时无法正确加载的问题
[Engine] 修复 Component.schedule 有可能引发 “element's paused should be paused” 报错的问题
[Engine] 修复鼠标事件冒泡相关问题
[Engine] [JSB] 修复 1.7.0 中原生平台未能调用 opengl 和 glNode 接口的 bug
[Engine] [JSB] 修复 JSB 2.0 中的一些相关问题
[Engine] [JSB] 修复原生平台 Scheduler.isTargetPaused 在 JS 中未定义的问题
[Engine] [JSB] 完善 jsb.reflection.callStaticMethod 支持的参数类型
[Engine] 移除安卓平台 x86 架构下的 SSE 支持,以便修复部分安卓模拟器上的运行问题
[Engine] 修复安卓 APP_PLATFORM >= 22 时的编译错误
[Engine] 修复 Layout 的子节点顺序改变后未能刷新排序的问题
[Engine] 修复场景常驻节点在原生平台 z order 失效的问题
[Engine] 修复原生平台 ResizableBufferAdapter::resize 有关问题
[Engine] 修复原生平台 socketio.emit 不传递 payload 参数时导致的异常
[Engine] 修复原生平台 XMLHttpRequest 在超时的时候调用 onerror 而不是 ontimeout 的问题
[Engine] [JSB] 修复原生平台 jsb.reflection.callStaticMethod 找不到类时的潜在内存泄露(Fixes potential memory leak if can't find class by jsb.reflection.callStaticMethod.)
[Engine] 解决安卓 conversionEncodingJNI 内存泄露问题
[Engine] 解决安卓 onWavClose 没有返回值的警告问题
[Engine] 解决安卓长时间在后台且 Activity 被系统回收后切换前台导致的崩溃问题
[Cocos Analytics] 解决 iOS 链接 Cocos Analytics 产生很多 deployment target 不匹配警告的问题
[Cocos Analytics] 升级数据统计 SDK 到 1.0.5,解决 iOS 中的 Reachability 和 BaseEvent 类与其它第三方库冲突的问题
[TiledMap] 修复由深度检测引起的 TiledMap 渲染异常
[Engine] 修复网页平台同时勾选 Fit Height 和 Fit Width 后的适配问题
[UI] 修复删除 Button 所用的 SpriteFrame 后引起的相关报错
[UI] 完善 UI 文本自动换行规则
[DragonBones] 修复龙骨事件丢失的问题

性能优化

[Build] 大幅优化原生平台启用脚本加密后的脚本体积

弃用

[UI] 添加 cc.ToggleContainer 组件,v2.0 中将会取代 cc.ToggleGroup。

详见文档:
github.com/cocos-creator/creator-docs/blob/master/zh/components/toggleContainer.md

另外,上面的改动大部分包含在了之前社区里发布的 v1.7.2 补丁版。

http://forum.cocos.com/t/cocoscreator-1-7-2-1-10/54934

相比 1.7.2,v1.8.1 除了支持微信小游戏以外,还新增了以下改动:

[Editor] 修复特殊情况下发布后的项目 JS 会包含无效符号的问题
[Engine] 修复 creator.d.ts 中 __ctor__ 引起的乱码
[Engine] 修复原生平台上 TiledMap 潜在的内存释放问题
[Engine] 修复原生平台 invokeJSTouchOneByOneCallback 内潜在的崩溃问题
[Engine] [JSB] 修复 1.7.0 以后原生平台上 TiledMap 未绑定 getTiles 接口的问题
[Engine] [JSB] 修复 JS 获取原生的 Scheduler, ActionManager, EventDispatcher 等对象后有概率会崩溃的问题
[Engine] [JSB] 修复 event.stopPropagation() 会停止所有 touch point 的问题
[Engine] [JSB] 在 TextureCache 中添加回调函数用于通知纹理加入缓存与从缓存中移除
[Engine] [JSB] 修复 iOS 在极端情况下的崩溃问题
[Engine] [JSB] 修复在 iOS 9 以下 createTypedArray 返回 null 的问题
[Cocos Analytics] 升级数据统计 SDK 到 1.0.5,解决 iOS Cocos Analytics 中的 BaseEvent 类与其它第三方库冲突的问题

最近微信小游戏正搞得沸沸扬扬,发布 20 多天即达到了 3.1 亿用户。而且微信方面称,“请大家在未来的一个月内随时关注 mp.weixin.qq.com ”,也许这意味着小游戏很有可能将于一个月内开放注册。

那么,为了把握住这一波浪潮,赶紧试着用「微信小游戏首发占半数的引擎」 Cocos Creator 最新版做一款小游戏吧!