我正在为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中删除实体时自动调用的生命周期方法。