Я использую A-Frame (webVR), чтобы сделать мультипанорамы. В мире есть несколько 3d кнопок (с сферическими панорамами в каждой позиции кнопки). Вы нажимаете кнопку, и компонент анимации перемещает камеру из ее текущего местоположения в местоположение кнопки. Пользовательский компонент, содержащий прослушиватель (для событий щелчка по кнопкам), использует setAttribute для установки атрибутов «до» и «из» компонента анимации на камере. Команда emit запускает анимацию. К сожалению, это терпит неудачу, и я вижу, что атрибут «from» установлен неправильно (он устанавливается так же, как «to»). Он не выдает ошибок, но я вижу в консоли, что from не будет установлен, хотя я установил его явно.
Я уже работал в предыдущей версии. Вы можете увидеть и проверить это здесь:
https://glitch.com/~camera-jumper
В этой версии я не устанавливаю атрибут from, и он по-прежнему работает нормально, возможно потому, что он принимает предыдущее значение по умолчанию.
Тогда я встроил некоторые другие функции, и теперь он не работает. Вы можете увидеть текущую версию здесь:
https://glitch.com/~panojumper
AFRAME.registerComponent('buttoncontrol', {
schema: {
pano:{type:'string',default: 'pSphere1'}
},
init: function(){
var el = this.el;
var cam = document.querySelector('#camera');
var panoManEntity = document.querySelector('#panoMan');
var panoName = this.data.pano;
console.log(cam.getAttribute('animation__jump', 'to'));
this.el.addEventListener('click', function(evt){
// Animate the camera moving to the button position
var btnpos = el.getAttribute('position');
var cam = document.querySelector('#camera');
var campos = cam.getAttribute('position');
cam.setAttribute('animation__jump','to', {x: btnpos.x, y:
btnpos.y, z: btnpos.z });
cam.setAttribute('animation__jump','from', {x: campos.x, y:
campos.y, z: campos.z });
cam.emit('camjump');
});
}
});
Я ожидаю, что setAttribute для 'from' будет тем, для чего я его устанавливаю, но оно совпадает со значением 'to'.