首页 文章

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

提问于
浏览
0

我正在利用aframe-state-component来构建游戏并通过状态变量跟踪游戏关卡和播放/暂停状态 .

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

这是我的州 -

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

我通过在我的角度控制器中发出一个事件将级别传递给gameStarted处理程序 -

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

这是我的HTML

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

组件“model-subset”最初只接受“target”属性 . 我在其中包含了gamelevel属性,以便我可以将状态变量级别传递给此组件 . 此后我修改了模型子集组件,以在模式中包含gamelevel属性,如下所示 -

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

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

1 回答

  • 1

    好问题 .

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

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

相关问题