重新步骤 :
// 先给常驻节点加载有资源的 chlid node
myNode.getChildByName(‘Spine’).getComponent(sp.Skeleton).skeletonData = myData;
// 加载常驻
cc.game.addPersistRootNode(myNode);
// 移除资源
myNode.getChildByName(‘Spine’).getComponent(sp.Skeleton).skeletonData = null;
// 移除常驻
cc.game.removePersistRootNode(myNode);
通过上面removePersistRootNode步骤, myData会被removePersistRootNode步骤释放掉
myDate 是手动通过 cc.resources.load(‘xxx’) 加载的,按理来说应该是要手动释放,但却被removePersistRootNode给释放了
Dome:
// UIBg/dome 设置自己的图片资源
cc.resources.load('UIBg/dome',cc.SpriteFrame,(err, myData)=>{
let node = new cc.Node()
let sprite = node.addComponent(cc.Sprite);
sprite.spriteFrame = myData;
node.parent = cc.director.getScene();
cc.game.addPersistRootNode(node);
console.info('addPersistRootNode 资源是否存在', myData.isValid, cc.resources.get('UIBg/dome', cc.SpriteFrame))
cc.game.removePersistRootNode(node);
console.info('removePersistRootNode 资源是否存在', myData.isValid, cc.resources.get('UIBg/dome', cc.SpriteFrame))
setTimeout(()=>{
console.info('延迟100ms 资源是否存在', myData.isValid, cc.resources.get('UIBg/dome', cc.SpriteFrame))
},100)
})
Dome输出

版本: 2.x ~ 3.8.3
平台: 所有平台