如何控制在组件之间执行哪些滴答方法的顺序?

时间:2018-11-10 23:46:09

标签: aframe webvr webxr

我有多个定义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 个答案:

答案 0 :(得分:1)

A框架没有内置的方法来定义报价执行顺序。刻度将按照初始化组件的顺序执行。通过使用b以所需的顺序调用组件方法,可以轻松地控制执行:

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'); }
});