使用对象池,透明度设置无效(1.4.2 bug反馈)

用对象池,在对象被回收之前改变了其中 子节点的 透明度。

之后从对象池中取出时, 在 reuse, onEnabled, update 里改变对象的透明度,只是数值上有变化, 但是显示上透明度不再变化。

不用对象池一切正常

不知道1.5是不是正常的。1.5太多地方不正常,暂时退回到1.4.2版本了

麻烦试一下 1.5.1 beta 版,如果还是不行跪求提交一个 demo……

写了个试了,和对象池有关系但是也不是全部。。。

因为我里面那个 Sprite 是动态贴图的。 unuse时 SpriteFrame 设为 null 了。 才能必现问题。

spriteFrame = null 时, 确实无法重置回正常 new出来的状态

暂时不设spriteFrame = null就是好的。
这几天有点事,下周一发个DEMO你。。。引擎方面负责解决下吧,不然H5动态贴图的还是会必现问题

好的,谢谢。

ccc_demo_1.zip (312.6 KB)

不要关心我为什么要用这么奇怪的写法,不绕过这BUG。。。

我好奇的是为什么 opacity 取值是255, 但是显示的明显不是

人呢。解决下疑难杂症啊

貌似和其他帖子里说的 active = false 后,状态不刷新了类似。
关键就是我代码里完全没设过 active。 而且也不是每次都失效。

你是 webgl 还是 canvas?

webgl

抱歉我这边重现不了,一直都很正常,需要特殊平台才能重现吗?直接电脑上预览不行吗?

因为我 1.5.1 重现不了,所以这个应该是旧版本的 bug,你升级到 1.5.1 就好了。你放到对象池里自然就 active = false 了

嗯,那我晚点更新吧。