[]关于removechild、destory、clear的问题

laya这几个与清除有关的总也闹不清,sprite的destory   与   graphics下的clear   以及   父元素removechild   的方法都能达到清理sprite的效果,有的时候都不知道用哪个会不占内存,哪个不用再重新建实例,api的太简略,能不能详细回答一下。
已邀请:

Aar0n

赞同来自: qq771472501

  • destroy :
  • 销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。 

           destroyChild (可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  • clear
  • 清空绘制命令Graphics 类用于创建绘图显示对象。Graphics可以同时绘制多个位图或者矢量图,还可以结合save,restore,transform,scale,rotate,translate,alpha等指令对绘图效果进行变化。Graphics以命令流方式存储,可以通过cmds属性访问所有命令流。Graphics是比Sprite更轻量级的对象,合理使用能提高应用性能(比如把大量的节点绘图改为一个节点的Graphics命令集合,能减少大量节点创建消耗)。
  • removechild
  • 只是单纯的删除子节点

希望答案能对你有帮助!

 

cheche062

赞同来自: qq771472501

destory是元素彻底清除,包含clear, removechild,   removechild只是暂时移除离开舞台而已,可以通过缓存的引用再加回来。graphics是可以包含多个绘图纹理的,clear掉就是清除它们。重新绘图!

要回复问题请先

商务合作
商务合作