0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点#源码解读-three.js中Object3D之remove方法

1.remove源码方法

remove: function(object) {
// arguments对象表示所有参数组成的数组
if (arguments.length > 1) {
// 循环遍历 每一个参数对象执行remove删除方法
for (var i = 0; i < arguments.length; i++) {

this.remove(arguments[i]);

}

return this;

}
// 获得object在children数组中的索引
var index = this.children.indexOf(object);

if (index !== -1) {
// 设置object的父对象属性parent为null空
object.parent = null;

object.dispatchEvent({
type: 'removed'
});
// 删除children数组中索引是index的元素
this.children.splice(index, 1);

}

return this;

},

2.官方中文文档解释

#yyds干货盘点#源码解读-three.js中Object3D之remove方法_Object3D

调用形式可以是如下两种:

parent.remove(box1) // 一次性删除一个
parent.remove(box1, box2) // 一次性删除多个

3.核心代码说明

#yyds干货盘点#源码解读-three.js中Object3D之remove方法_Object3D_02

4.总结

  • 递归调用
  • 移除一个子级的三行核心代码
举报

相关推荐

0 条评论