A-Frame Вращение камеры и анимация движения без учета новых данных

Я пытаюсь заставить мою камеру двигаться и вращаться в определенных положениях и поворотах, которые динамически задаются в js.

Однако камера поворачивается от начального значения до 0 0 0. Когда данные говорят, что это должны быть другие значения. Вращение происходит мгновенно, анимации нет. Позиция не меняется, даже если данные успешно изменились.

Я использую компонент aframe-animation.

// JS
var camera = document.getElementById('camera');

camera.components.animation__movecamera.data.from = camera.components.position.data;
camera.components.animation__rotatecamera.data.from = camera.components.rotation.data;

camera.components.animation__movecamera.data.to = (positions.x - positionX)+ ' ' + positions.y + ' ' + (positions.z + 10);
camera.components.animation__rotatecamera.data.to = rotations.x + ' ' + rotations.y + ' ' + rotations.z;

camera.emit('rotateCamera');
camera.emit('moveCamera');


// HTML
<a-camera id="camera"
    look-controls
    wasd-controls="acceleration:200"
    animation__rotateCamera="property: rotation; startEvents: rotateCamera;"
    animation__moveCamera="property: position; startEvents: moveCamera;"
>

Спасибо за помощь.


person Massimo    schedule 10.02.2018    source источник


Ответы (1)


К атрибуту данных нельзя обращаться напрямую, это внутренняя переменная компонента. Вместо этого необходимо использовать общедоступный API:

el.setAttribute('animation__rotateCamera', { to: foo });

Подробнее в документах:

https://aframe.io/docs/0.7.0/introduction/javascript-events-dom-apis.html#updating-a-component-with-setattribute

person Diego Marcos    schedule 11.02.2018
comment
Спасибо, это решило проблему отсутствия анимации. Однако знаете ли вы, почему в начале моей анимации есть кадр, который выглядит как графический сбой. - person Massimo; 11.02.2018