2.1.0升级2.1.2后碰到的一些问题

总结一下

  1. 性能问题, 目前发现在个别 MAC SAFARI 上面会有明显下降, 原因不明

  2. MAC SAFARI 上声音不播放的问题, 无论是 2.1.0 还是 2.1.2, 都不播放, 网上有说法是要把浏览器的声音打开. 但奇怪的是, 我有另一个项目 2.1.0, 却没这个问题. 原因不明.

  3. 关于 SAFARI/EDGE 浏览器的正数问题, 我目前有临时的解决方案. 不过 github 上我试过 2.1.3 和 2.2.0 的 audio 目录下的两个文件, 问题仍然存在.

  4. cc.view.getVisibleSize 的问题, 倒还问题不大. 不建议把 cc.game._prepareFinished 改动, 那个修改其实并不好.

  5. 建议下个版本把 textUtil 导出到 cc 中

  6. 粒子拖尾的问题, 把如下的代码注释掉可以临时应付
    this.positionType = parseFloat(dict[‘positionType’] || PositionType.RELATIVE);

  7. F11无法全屏的问题, 如下代码

    _t._rpShowAll = new cc.ResolutionPolicy(_strategyer.EQUAL_TO_FRAME, _strategy.SHOW_ALL);
    要改成
    if (cc.sys.isBrowser && !cc.sys.isMobile) {
    _t._rpShowAll = new cc.ResolutionPolicy(_strategyer.PROPORTION_TO_FRAME, _strategy.SHOW_ALL);
    }
    else {
    _t._rpShowAll = new cc.ResolutionPolicy(_strategyer.EQUAL_TO_FRAME, _strategy.SHOW_ALL);
    }

  8. cc.Sprite的setState/getState 未实现的问题, 可以在 cc.Button 中找到答案, 临时解决

  9. 目前编辑器不能指定插件脚本仅仅给编辑器使用, 建议后续版本可以.

这次升级算是有惊无险.

windows 这个声音正数问题你是怎么解决的?替换了之前的andio么?

谢谢反馈,我们进行会跟进

这个问题我们已经建立 issue,谢谢反馈

嗯…… 可以考虑。目前你可以先在代码里用 if (CC_EDITOR) 判断一下。

这个算是 label 自己使用的,没有打算开放给用户,你需要用它做什么?

这个具体表现是什么情况呢?(可否在描述一下?)之前有修复 positionType 的问题,不知道是否跟这个有关系?

MAC SAFARI 上声音不播放的问题, 无论是 2.1.0 还是 2.1.2, 都不播放, 网上有说法是要把浏览器的声音打开. 但奇怪的是, 我有另一个项目 2.1.0, 却没这个问题. 原因不明.

https://github.com/cocos-creator/engine/pull/4991/files

浏览器声音播放问题可以参考这个 pr 的修复
不能播放是因为浏览器的安全限制,需要用户交互之后才能播放声音

2.1.2使用上面的方法修改在Microsoft edge 上面还是播放声音没有效果,并且会报错:
WEBAUDIO17047: Time constant 必须是正数。
SCRIPT5022: SCRIPT5022: InvalidAccessError

声音是两个问题

  1. 需要正数的问题
    this.gainObj[‘gain’].setTargetAtTime(this.volume, this._context.currentTime, 0)中最后的的0改为0.01, 有两处. 这个是临时方案
  2. MAC SAFARI声音播放无声音问题
    https://github.com/cocos-creator/engine/pull/4991

我不知道能不能解释清楚, 有一个插件脚本和一个JSON文件, 都是描述的多语言字符串, 相同的内容. 插件脚本给编辑器用, 正式发布用的是JSON. 因为文件较大, 希望发布的时候, 不要带上那个插件脚本.

想在外部注入代码修改断字规则, 不过这个也没什么. 目前发现引擎的断字规则不能正确处理越南语言.

目前用 CC_EDITOR 判断一下即可。构建时内容会剔除掉的。

2.1.2的引擎每次打开的时候应该会编译吧?打断点看到也是更改后的,但是为什么没生效呢,还需要额外用node编译一次?

改引擎代码后要编译引擎:
命令行切换到CocosCreator/resources/engine目录下
运行
gulp build --max_old_space_size=4096

https://github.com/cocos-creator/engine/pull/4910/files
这个是 edge 浏览器的相关修复,可以参考下

1赞

https://docs.cocos.com/creator/manual/zh/advanced-topics/engine-customization.html

可以参考下引擎定制工作流程,javascrip 引擎部分

谢谢,这个流程我之前看到过,使用node编译一次确实生效了。只不过对于ccc每次打开时候的编译有些好奇,那个编译都是编译哪些部分呢?

Hi,

First of all, thank you for building such an amazing tool like CocosCreator!

I see the Edge fix is going to be released in 2.1.3, do you know an ETA for this release?

Thank you!

what is ETA?