компонент состояния aframe - передача данных из состояния в компонент - PullRequest
0 голосов
/ 09 декабря 2018

Я использую компонент aframe-state-компонент для создания игры и отслеживания уровня игры и статуса игры / паузы с помощью переменных состояния.

Я хочу понять, как передавать данные состояния вкомпонент со свойствами.

Вот мое состояние -

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, чтобы передать уровень переменной состояния этому компоненту.После этого я изменил компонент подмножества модели, включив в схему свойство 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 Ответ

0 голосов
/ 10 декабря 2018

хороший вопрос.

В bind__ компоненте вы передаете только свойства состояния, а не реальные значения.Реальные значения входят в само определение компонента.Так что переместите target: #orca в model-subset, так как это всего лишь значение.

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