如何使用setAttribute更改对象在A-Frame中的位置?

时间:2018-07-26 20:49:39

标签: aframe virtual-reality webvr

我在0.8.0中面临此问题。我的

<a-sphere id="ball" position="-1 0.59 -4"></a-sphere>

已经存在于<a-scene>的{​​{1}}中。单击此球后,我希望其位置更改为-3 0.59 -3。我尝试过

<body>

但它们似乎都不起作用。

我正在构建一个应用程序,其中球的位置会更改为单击光标的位置。

1 个答案:

答案 0 :(得分:0)

两种方法:

document.getElementById("ball").setAttribute('position', '-3 0.59 -3')
document.getElementById("ball").setAttribute('position', {x:-3, y:0.59, z:-3})

是正确的,并将球移到所选位置。在我的fiddle中进行检查。


您可能是:
1。。在加载场景之前调用方法,因此无法抓住球。
2。。未设置光标或鼠标来处理渲染的对象。
设置鼠标很容易-只需将cursor组件添加到场景即可:

<a-scene cursor="rayOrigin: mouse">

请务必检查光标上的docs

3。。未正确设置点击的事件监听器,我这样做是这样的:

 AFRAME.registerComponent("foo", {
   init: function() {
      this.el.addEventListener("click", (e)=>{
        //do Your thing here
      })
   }
 })

如果您不熟悉组件系统,请确保检查它们out