【发布时间】: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
}
})
但是,它出错并且组件代码没有被执行。您能否给我一个示例,说明如何将状态数据传递给在其架构中已经具有一些属性的不同组件?
【问题讨论】:
-
添加了一个答案。我刚刚编辑了它,因为我弄乱了代码部分的格式并且它没有显示。