У меня проблемы с возвратом данных. Когда вы впервые загружаете эту страницу, она записывает пустое {} для oldData, и «this» возвращает сам элемент. Когда вы нажимаете, он регистрирует mouseEvent для oldData и элемент окна для «this».
Я ожидаю, что он должен последовательно регистрировать данные из схемы. Я не уверен, должен ли объект быть пустым при первом запуске обновления, но это зависит от того, что «oldData» находится в этот момент. Я также ожидаю, что «this» всегда будет ссылкой на компонентную функцию, а не на окно. Что я здесь не рассматриваю?
<html lang="en">
<head>
<script src="https://aframe.io/aframe/dist/aframe-master.min.js"></script>
<script>
AFRAME.registerComponent('my-component', {
multiple: false,
schema: {
mood: {
type: 'string',
default: 'happy'
}
},
init() {
window.addEventListener('click', this.update)
},
update(oldData) {
console.log("oldData: ", oldData);
console.log("this: ", this);
},
})
</script>
</head>
<body>
<a-scene>
<a-sky color="blue"></a-sky>
<a-box id="bluebox" color="green" position="-1 0 -3" my-component></a-box>
<a-light position="-3 4 2" type="spot" target="#bluebox"></a-light>
</a-scene>
</body>
</html>