Aframe 帧状态组件能否跨场景跟踪状态?

Aframe 帧状态组件能否跨场景跟踪状态?,aframe,Aframe,我有一个(基于角度5的)a帧应用程序,有两个场景。我希望跟踪应用程序状态,例如使用组件的配置参数。我想访问两个场景中的累积状态。然而,根据经验,似乎每次我切换到另一个场景时,状态中的所有变量都会重置为初始状态 此外,您可以使用以下语句访问状态变量: AFRAME.scenes[0].systems.state.state.score 向我建议该状态仅绑定到一个场景(场景[0]等于当前场景) 起初,我认为这是一个角度问题,因为我初始化状态的假定单例服务在每次场景传输时都被初始化。但我发现使用角度

我有一个(基于角度5的)a帧应用程序,有两个场景。我希望跟踪应用程序状态,例如使用组件的配置参数。我想访问两个场景中的累积状态。然而,根据经验,似乎每次我切换到另一个场景时,状态中的所有变量都会重置为初始状态

此外,您可以使用以下语句访问状态变量:

AFRAME.scenes[0].systems.state.state.score
向我建议该状态仅绑定到一个场景(场景[0]等于当前场景)

起初,我认为这是一个角度问题,因为我初始化状态的假定单例服务在每次场景传输时都被初始化。但我发现使用角度路由器链接:

this.router.navigate([(evt.target as any).previousSibling.getAttribute('link').href, {}])
而不是默认设置:

window.location = this.data.href
解决了这个问题。因此,现在看来这是一个问题与A-框架

该组件只能用于场景内而不能用于场景间的概念是正确的假设吗


注意:我也在尝试,它似乎在场景之间保留状态没有问题,但我更愿意使用帧状态组件,因为它看起来更简单。

状态组件似乎不存储状态,因此如果一个页面上有两个场景,它会起作用:

<a-scene></a-scene> 
<a-scene visible="false"></a-scene>

fiddle)。

您可以在本地存储中存储并在加载时恢复。比如:

window.addEventListener('beforeunload', () => {
  localStorage.setItem('state', JSON.parse(state));
});

initialState: localStorage.getItem('state') 
  ? JSON.parse(localStorage.getItem('state'))
  : {
  // Initial state...
}
编辑:意识到你的意思是应用程序内场景更改?你可以做类似的事情。卸载场景时,将其存储在某个位置,然后状态组件检查它是否存在