最近项目里面需要实现一个类似app的那种下拉刷新和上拉加载的列表,我把整个列表封装成一个prefab
但是当用cc.Instantiate(prefab)拿到节点再取出脚本的时候,发现刷新的回调会有问题
一个场景中只有一个下拉刷新prefab的时候是ok的,当出现多个的时候,最后一个的回调会覆盖之前的所有,后来我找了很久的资料才发现以下这段话
instantiate
克隆指定的任意类型的对象,或者从 Prefab 实例化出新节点。
(Instantiate 时,function 和 dom 等非可序列化对象会直接保留原有引用,Asset 会直接进行浅拷贝,可序列化类型会进行深拷贝。)
那么问题来了 我该如何实现我这个需求呢?
其实下拉刷新和上拉加载的效果我已经实现了,问题不在这, 根据app端的思路是 任何的列表都是属于一个控件,改变的只是其中的item 所以我把下拉刷新,上拉加载和列表统一封装成了一个prefab 在creator中 prefab是否能理解成自定义控件呢? 如果能的话 那说明我的思路没问题,问题是当我在同一个场景内需要实例化2个一样的prefab的时候,他们的回调会相互覆盖,只有一个生效,这很不科学,原因我已经知道了是因为cc.Instantiate(prefab)function 和 dom 等非可序列化对象会直接保留原有引用, 但是我应该如何避免这个问题从而达到我的需求呢