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,我想这里大家应该会明白什么。