【问题标题】:aframe vive controller Uncaught TypeError: hand.getAttribute is not a functionaframe vive 控制器未捕获类型错误:hand.getAttribute 不是函数
【发布时间】:2019-01-20 07:09:18
【问题描述】:
我试图在一个项目的框架中获取和更新 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
【问题讨论】:
标签:
d3.js
aframe
htc-vive
【解决方案1】:
最新版的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>