3.4.0, tween(透明度) 失效

  • Creator 版本: 3.4.0

  • 目标平台: <!-- 什么浏览器?/ iOS / Android / 模拟器 / 小游戏开发工具?小游戏真机?

(十分重要,别简单的就说“原生”或者“网页”)–>win10 chrome

  • 重现方式:

      ```
    
          // tween(this.n_header.getComponent(UIOpacity))
    
          // .to(2, {opacity: 0})
    
          // .start();
    
          tween(this.n_header.getComponent(Sprite).color)
    
          .to(2, {a: 0})
    
          .start();
    
      ```
    
  • 之前哪个版本是正常的: 3.3.2

  • 编辑器操作系统: win10

  • 重现概率: 100%

使用 UIOpacity 是可以 修改透明度

这个确实有问题。

同样遇到,换用UIOpacity组件好使

请问这是 3.4 新出现的 bug 吗?

嗯,我项目3.3.2是ok的。升级到3.4不行

很抱歉,我们在3.4做了一些关于alpha的缓存优化导致了这问题。
目前可以规避问题的方案:设置color整个对象(目的是触发color.setter),而非只设置一个color的某个分量。
我们会尽快讨论并给出一个解决方案。感谢您的反馈。

亲,试过了,不行,但是具体问题,我不想贴出来,就是希望你们给出解决方案前先能自己试一下。你会发现,哇哦,又多了个bug

我下面的回复,希望你能满意。优化下你们的回复流程。感谢

亲,看过了,可以,但是具体满意度,我不想贴出来。希望你能满意,不用谢

亲,你们的解决方案这边没有复现,方便的话,提供个demo

1赞

Color.fromHEX 方法在3.3.2 返回的color对象中,alpha值为255,在3.4.0中alpha变成了0

我们这边好像是正常的,image ,传的数值是什么呢

fromHEX 方法原本有一个 bug,3.4.0 修复了,可能是这个导致你那边的问题,这是 PR Fix color.fromHex function can’t set alpha to zero by yanjifa · Pull Request #9614 · cocos-creator/engine (github.com)

的确是这个问题造成的

let color = new Color();
Color.fromHEX(color, “fceab0”);
这样的写法会造成这个问题。


你先用 color.fromHEX 我看这个是正常的

1赞

这是修复 PR, 急用可以自定义引擎修复
[3.4.1] Fix Color.fromHex Bug by yanjifa · Pull Request #9867 · cocos-creator/engine (github.com)

请问在3.4.1 beta版本是否修复了这个问题?

目前还没有, 官方还没合并

1赞