aframe vive控制器未捕获的TypeError:hand.getAttribute不是函数

时间:2019-01-20 07:09:18

标签: d3.js aframe htc-vive

我正在尝试获取和更新项目中Vive控制器的位置。

我已经尝试过使用d3.js

var hand = d3.select('.con_left');
var pos = hand.getAttribute('position');
console.log(pos);

但显示错误

Uncaught TypeError: hand.getAttribute is not a function

1 个答案:

答案 0 :(得分:0)

d3-selection属性方法的最新版本仅为attr

var hand = d3.select('.con_left');
var pos = hand.attr('position');

这里是一个例子:

setInterval(() => {
  const box = d3.select('a-box')
  const sphere = d3.select('a-sphere')
  box.attr('position', `${-Math.random()/5} ${Math.random()/5} -3`)
  sphere.attr('position', `${Math.random()} ${1+Math.random()/5} -5`)
}, 50);
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
<script src="https://d3js.org/d3.v5.min.js"></script>
<a-scene>
  <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
  <a-box position="-1 0.5 -3" rotation="0 45 0" width="1" height="1" depth="1" color="#4CC3D9"></a-box>
  <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
  <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
  <a-sky color="#ECECEC"></a-sky>
</a-scene>