无法读取未定义错误的属性"object3D",当显式调用 AFrame 组件的 remove() 时



我正在为Aframe编写自定义计时器组件。计时器是使用基本三。j制造的,通过将多个trix.js object3d分组,并最终使用

设置为实体(el)
seconds = new THREE.Object3D();
parent1 = new THREE.Object3D();
seconds.add(parent1);
parent2 = new THREE.Object3D();
seconds.add(parent2);    
this.el.setObject3D('Mesh', seconds);

计时器工作正常。但是,当我调用remove()(包含以下代码)时。

this.el.removeObject3D('Mesh');

我得到错误的typeerror:无法读取未定义的属性'object3d'。我记录了el.Object3d,类型为"组",但秒为" Object3d"。

我需要从场景中删除组件。我该怎么办来解决这个问题?请在Glitch链接上找到组件的代码 谢谢。

两个选项:

使用DOM API删除实体:

var clock=document.getElementById("timer");
document.querySelector("a-scene").removeChild(clock);

修饰的小故障

您还可以从实体中删除组件:

var clock=document.getElementById("timer");
clock.removeAttribute('timer-component');

故障

删除方法不是直接调用的,而是在从实体分离或从DOM中删除实体时自动调用的生命周期方法。

最新更新