我想在一个球体上点击一个框架显示多个球体。假设我有一个球体,当我将光标移动到该球体时,它将显示其他球体,当我点击其中一个球体时,它将显示另一个球体。
答案 0 :(得分:0)
这取决于,如果球体是预定义的,或“程序性的”。
如果你想在每个球体点击上制作新的球体,你可以为场景制作一个新的组件,听取任何a-sphere
上的任何点击,并将新的球体附加到目标:
AFRAME.registerComponent('foo',{
init:function(){
document.querySelector("a-sphere").addEventListener('click',this.createSpheres);
},
createSpheres:function(){
let sphere1 = document.createElement('a-sphere');
sphere1.setAttribute('position','-1 1 1');
let sphere2 = document.createElement('a-sphere');
sphere2.setAttribute('position','2 1 2');
let sphere3 = document.createElement('a-sphere');
sphere3.setAttribute('position','-1 -1 -1');
e.target.appendChild(sphere1);
e.target.appendChild(sphere2);
e.target.appendChild(sphere3);
}
});
我在这里做的是检查点击 - >调用负责球体创建的函数。
据我所知,document.querySelector()不应该正常工作,因为它应该选择“第一个”找到的选择器,但由于某种原因它可以在这里工作。
此处的实例:https://jsfiddle.net/wqbxnakr/。
<小时/> 对于预定义的对象,只需在点击时看到他们的第一个孩子:
AFRAME.registerComponent('bar',{
init:function(){
this.el.addEventListener('click',(e)=>{
this.el.children[0].setAttribute('visible','true');
}
}
});
并将组件附加到每个链式球体。