Как я могу контролировать порядок выполнения тиковых методов между компонентами?
У меня есть несколько компонентов, которые определяют tick
метод и мне нужно контролировать порядок выполнения. Со следующими компонентами:
AFRAME.registerComponent('component-a', {
tick: function () { console.log('ComponentA'); }
});
AFRAME.registerComponent('component-b', {
tick: function () { console.log('ComponentB'); }
});
AFRAME.registerComponent('component-c', {
tick: function () { console.log('ComponentC'); }
});
И следующая сущность:
<a-entity component-a component-b component-c></a-entity>
Я хочу гарантировать следующий порядок тиков: component-a, component-b, component-c
1 ответ
A-Frame не имеет встроенного способа определения порядка выполнения тиков. Галочки будут выполняться в том порядке, в каком компоненты инициализируются. Можно легко контролировать выполнение, имея manager component
который вызывает методы компонентов в нужном порядке:
AFRAME.registerComponent('manager', {
tick: function () {
const el = this.el;
el.components['component-a'].print();
el.components['component-b'].print();
el.components['component-c'].print();
}
});
AFRAME.registerComponent('component-a', {
print: function () { console.log('ComponentA'); }
});
AFRAME.registerComponent('component-b', {
print: function () { console.log('ComponentB'); }
});
AFRAME.registerComponent('component-c', {
print: function () { console.log('ComponentC'); }
});
На следующую сущность:
<a-entity manager component-a component-b component-c>