CocosCreator removeFromParent和destroy那些事

removeFromParent和destroy的区别?

removeFromParent是使节点脱离父节点,成为游离节点,并没有离开内存。

(用js理解就是,它可能会将来会被引用,所以暂不回收,所以容易内存泄露)

它可以接受一个布尔参数,true表示清除节点上的事件监听和动画等。

一般传入false。

destroy会调用组件生命周期钩子onDestroy,释放掉所占内存。推荐使用destroy来摧毁节点。

removeFromParent是cocos内核中用的,管理不当会造成内存泄露。

有兴趣的可以看看cocoscreator关于cc.NodePool的源码,很简单易懂,不到100行。

https://github.com/cocos-creator/engine/blob/e5309dab411365467e076f59d9b7d7bb1c48926e/extensions/ccpool/CCNodePool.js

它的put就是用的removeFromParent,clear才是用的destroy,我想这里大家应该会明白什么。

转发:removeFromParent和destroy那些事 - 哔哩哔哩

猜你喜欢

转载自blog.csdn.net/weixin_42565127/article/details/133989914