【问题标题】:aframe state component - pass data from state to componentaframe 状态组件 - 将数据从状态传递到组件
【发布时间】:2018-12-09 15:04:57
【问题描述】:

我正在使用 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>

组件“模型子集”最初只接受“目标”属性。我在其中包含了 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
  }
})

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

【问题讨论】:

  • 添加了一个答案。我刚刚编辑了它,因为我弄乱了代码部分的格式并且它没有显示。

标签: three.js aframe


【解决方案1】:

好问题。

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

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

【讨论】:

  • 好的,那么“model-subset”组件是否应该在其架构中包含属性gamelevel,以便通过this.data.gamelevel在其中访问level的值? AFRAME.registerComponent('model-subset', { schema: { target: { default: '', type: 'selector' }, gamelevel: {default: 2, type: 'number'} }, init: function() { var data = this.data; var el = this.el; console.log("model-subset level is ", data.gamelevel); } });
  • 是的,它仍然需要该属性。当状态改变时,绑定会自动为你设置。
  • 是的,工作得很好。你太棒了,我会给你买一个啤酒厂。
  • 啤酒,还是整个啤酒厂? xD
  • 虽然你的帮助值得整个啤酒厂,但我现在意识到我说话很兴奋,只能买几瓶啤酒:-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2019-12-11
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-17
相关资源
最近更新 更多