如何在几何图形中显示多个几何图形?

时间:2017-09-19 02:40:01

标签: aframe webvr

我想在一个球体上点击一个框架显示多个球体。假设我有一个球体,当我将光标移动到该球体时,它将显示其他球体,当我点击其中一个球体时,它将显示另一个球体。

1 个答案:

答案 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');
    }
  }
});

并将组件附加到每个链式球体。