发布于 2017-06-12 11:17:02
如果您想让相机在旋转之后旋转一段时间,那么:
<e-entity>包好相机,然后在里面做一个<a-animation>。给它一个2000年的持续时间,一个开始的事件,和一些很好的放松。看看文档。然后制作一个组件来检查相机的旋转情况如下:AFRAME.registerComponent('camera-check', {
init: function () {
var rotation, newRotation;
camera = document.querySelector('a-camera');
camera.addEventListener('componentchanged', function(evt) {
if (evt.detail.name === 'rotation') {
// here You have your new rotation reference in evt.detail.newData
// and Your old rotation reference in evt.detail.oldData
rotation = newData-oldData;
if(rotation>0){
newRotation = newData;
newRotation.y +=15;
}else{
newRotation = newData;
newRotation.y -=15;
}
});
}
});然后,听一听鼠标事件。当其触发时,将动画组件的to属性设置为newRotation,并发出启动动画的事件。
我希望你明白这个想法。得到轮转率。在鼠标上,找出你在旋转的方向,再移动一点。宽松政策应该会使其顺利进行。
生成附加实体的原因是,在对摄像机进行动画时,可以触发组件更改事件。您还可以进行标记检查,这将在动画进行时禁用组件更改事件。这将要求您进行2秒的超时,或者让监听器检查动画是否结束。(第二个选项要好得多,因为您可以得到动画结束的确切时刻)。
此外,如果您希望它更好,则需要获得实际的旋转速率:
https://stackoverflow.com/questions/44492897
复制相似问题