aframe 状态组件 - 将数据从状态传递到组件

aframe state component - pass data from state to component

我正在使用 aframe-state-component 构建游戏并通过状态变量跟踪游戏级别和 play/pause 状态。

我希望了解如何将状态数据传递给具有属性的组件。

这是我的状态 -

AFRAME.registerState({
  initialState: {
    score: 0
  },
 handlers: {
    gamePaused: function(state) {
      state.gamePaused = true;
    },
    gameStarted: function(state, event) {
     state.gamePaused = false;            
     state.level = event.source;     
    }
  }
});

然后我通过在我的 angular 控制器中发出一个事件将关卡传递给 gameStarted 处理程序 -

el.emit('gameStarted', {source: levelnumber}, true);

这是我的 html

<a-entity bind__model-subset="target: #orca; gamelevel: level"></a-entity>

组件"model-subset"原来只接受了"target"属性。我在其中包含 gamelevel 属性 以便我可以将状态变量 level 传递给该组件。此后,我修改了模型子集组件,以在架构中包含游戏关卡 属性,如下所示 -

AFRAME.registerComponent('model-subset', {
  schema: {
    target: { default: '', type: 'selector' },
    gamelevel: { type: 'number'}
  },
  init: function() {
    var data = this.data;
    var el = this.el;
    console.log("model-subset level is ", data.gamelevel); //this component does not get executed
  }
})

但是,它出错了,组件代码没有被执行。您能否举例说明如何将状态数据传递给在其模式中已经具有一些属性的不同组件?

问得好。

bind__ 组件中,您只传递状态属性,而不传递任何实际值。实际值在组件定义本身中。所以将 target: #orca 移到 model-subset 中,因为那只是一个值。

<a-entity bind__model-subset="gamelevel: level" model-subset="target: #orca"></a-entity>