反馈一个Color.fromHEX的bug

反馈一个Bug

这个代码是有bug的。

不信你们可以试试
let color = Color.fromHex(new Color(), 0x000000ff);
按注释写,这里应该是RGBA格式,也就是黑色(不透明)

但实际你渲染出来,会发现是红色,为什么呢。
就是我框住的这个地方,当hex<0x1000000,就给补一个透明度a,但你没想过任何小于0x1000000的颜色都会受影响吗。

也就是当数字是0x000000ff,明明是黑色不透明,这里却认为是红色不带透明通道。

另外吐槽一下这个Color类乱七八糟的设计,fromHex是RGBA的格式,fromUint32又是ABGR的格式(甚至不是ARGB这种常见的格式)

搞得我查了半天才发现这里的格式是不统一的,等我统一处理后,发现还是有bug,才发现源代码就是有bug的…

:sob: :sob: :sob:

:hushed:! 看了一下,我这边都是用的字符串处理。才没出现这种bug。碰上这种坑也太折磨了