-
Creator 版本: 3.8.4
-
目标平台: 小游戏真机,浏览器
-
重现方式:
-
首个报错:
-
之前哪个版本是正常的: 3.8.3及以前都正常
-
手机型号:
-
手机浏览器:
-
编辑器操作系统:
-
重现概率:
public fadeNode(node:Node,opacity:number, time:number,delay:number,param:any){
let cpm: UIOpacity = node.getComponent(UIOpacity);
if (!cpm) {
cpm = node.addComponent(UIOpacity);
}
if (cpm) {
let tw = tween(cpm);if (delay) { tw = tw.delay(delay); } let ret = tw.to(time, { opacity: opacity }).call(() => { if (param && param.callback) { param.callback(); } }).start(); return ret; }}
节点淡入淡出封装。当节点通过 NodePool 回收,并重新复用时, 节点不会再显示了
流程
- 创建节点并使用(节点包含Label子节点)
n.getComponent(UIOpacity).opacity = 255;
let tween=fadeNode(n,0,0.5,0.3,null);//淡出
子节点都正常显示并正常淡出
2.完成后回收节点
tween.stop();
nodePoll.put(n);
3.复用节点 再次使用
let n=nodePoll.get();
n.getComponent(UIOpacity).opacity = 255;
let tween=fadeNode(n,0,0.5,0.3,null);//淡出
不再显示,屏幕里什么也看不到,但是节点确实已经添加到游戏里了
注: 代码逻辑没动过,在3.8.3及以前都正常,升级到3.8.4后就出现了。