cocos2d-x 进步之路 资源释放的原理和最好时机

场景的切换时候资源释放原理
replaceScene : SceneB
init : SceneB
onExitTransitionDidStart : SceneA
onExit : SceneA
dealloc : SceneA
onEnter : SceneB
onEnterTransitionDidFinish : SceneB

B场景的onEnter函数在A场景的dealloc之后执行。

而且那么只要在B场景的onEnter里释放A场景的资源就可以。

试验了下,资源的确被释放了。

而且,释放资源是在B场景的init之后执行,这样的好处就是,假设场景B中用到场景A中的某些资源,

这些资源就不会被释放再加载,造成不必要的内存高峰。

B场景的init是在A场景的释放之前的,也就是说,在B场景诞生,A场景彻底释放

的短时间内,会存在A,B场景的所有资源共存的现在。这个时候内存达到巅峰。如果A场景

跟B场景的资源所占内存都非常大的时候,或许会造成崩溃。

那么我们应该如何解决?

原文链接:http://www.cocos.com/doc/tutorial/show?id=2936

目前我的解决方法就是在场景过渡的时候增加一个过渡场景,也就是Loading场景,Loading场景

本身所需的资源并不多,在A场景资源释放完毕后,再开启B场景的资源加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值