首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aframe-状态组件可以跨场景跟踪状态吗?

aframe-状态组件可以跨场景跟踪状态吗?
EN

Stack Overflow用户
提问于 2018-05-30 07:15:55
回答 2查看 80关注 0票数 1

我有一个(角5)的a帧应用程序,有两个场景。我希望跟踪应用程序状态,例如使用帧-状态组件组件的配置parms。我想在两个场景中访问累积状态。然而,从经验上看,每次我切换到另一个场景时,状态中的所有变量都会被重置到它们的初始状态。

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

代码语言:javascript
复制
AFRAME.scenes[0].systems.state.state.score

对我来说,状态只与一个场景联系在一起(场景与当前场景相同)。

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

代码语言:javascript
复制
this.router.navigate([(evt.target as any).previousSibling.getAttribute('link').href, {}])

而不是默认的:

代码语言:javascript
复制
window.location = this.data.href

解决了那个问题。所以现在它似乎是一个A框架的问题。

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

注意:我也在试验角余弦/存储,它似乎没有问题跨场景保留状态,但我宁愿使用aframe-状态组件,因为它看起来更简单。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-30 08:35:35

您可以存储在localStorage中,并在加载时恢复。类似于:

代码语言:javascript
复制
window.addEventListener('beforeunload', () => {
  localStorage.setItem('state', JSON.parse(state));
});

initialState: localStorage.getItem('state') 
  ? JSON.parse(localStorage.getItem('state'))
  : {
  // Initial state...
}

编辑:意识到你打算在应用程序中改变场景吗?你也可以做类似的事。当场景卸载时,将其存储在某个地方,然后状态组件检查它是否存在?

票数 3
EN

Stack Overflow用户

发布于 2018-05-30 07:56:50

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

代码语言:javascript
复制
<a-scene></a-scene> 
<a-scene visible="false"></a-scene>

并通过设置visible属性来切换它们。我还展示了AFRAME.scenes是指页面上的场景,因为您可以在上面的“示例”(或 AFRAME.scenes[1] )中记录AFRAME.scenes[0]AFRAME.scenes[1]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50598545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档