3.5.2 图片引用计数问题

一个公共预制体a, 挂载了一个图片q,
bundle.load() 后, 图片q的spriteFrame的 _ref = 1
b界面 instantiate(a),放到场景上 , 图片q的spriteFrame的 _ref 依然1
c界面 instantiate(a),放到场景上 , 图片q的spriteFrame的 _ref 还是1
当前b、c界面都不销毁。
c界面再通过代码动态加载图片q, 主动调用 spriteFrame.addRef() 这是计数为2.复制给d变量。。
我要销毁C界面时,是不是只能通过C.d.spriteFrame.defRef()
而无法在调用destory之前 遍历c界面children下面所有的sprite组件给他们全部 defRef()

1、首先预制体a上挂载了图片q,无论你在哪实例预制体a,图片q的引用和释放是有引擎控制,属于静态关系。可以去阅读cocosCreator的文档。

2、你在动态加载图片q的时候,属于动态管理,需求自己实现addRef和defRef管理。比如:你在C脚本中创建一个Map结构,当动态加载q的时候addRef一次,并记录一下次数比如:map.set(path, count).。 当destroy的时候你只需要遍历map去释放调用defRef。