2017-08-10 90 views
0

我试图根据代码中的一些规则动态地隐藏/显示A帧的vr-mode-ui。 Initally的<a-scene>看起来是这样的:动态切换A帧的vr-mode-ui

<a-scene id="vr-scene" vr-mode-ui="enabled: false"> 

在我的控制,我想启用和基于标记禁用它:

let scene = document.querySelector('#vr-scene'); 
if (showVR) { 
    scene.setAttribute('vr-mode-ui', 'enabled: true'); 
} else { 
scene.setAttribute('vr-mode-ui', 'enabled: false'); 
} 

但这种切换发生的那一刻,我得到一个错误控制台如下所示: TypeError: Cannot read property 'removeChild' of null

请告知这里发生了什么问题。有没有更好的方法来启用/禁用VR按钮?

这里有一个简单codepen:https://codepen.io/anon/pen/BdZWdz

步骤:

  1. 单击启用
  2. 单击禁用
  3. 单击启用(VR按钮不上来)
+0

你也许试图禁用它时,它已经被禁用? – ngokevin

+0

这里有两个问题,'scene.setAttribute('vr-mode-ui','enabled:true');'没有带回vr-button。所以,下一次进入'else'时,它仍然是禁用的,因此是错误的。任何想法,为什么'enabled'部分不能把它带回来! – Mustang

+0

@ngokevin:我已经添加了一个codepen来演示我遇到的问题。请看看它。感谢你的帮助。 – Mustang

回答

0

目前该组件不支持启用/禁用大部分按钮。更多的一次性的事情。这可以解决,但会提出问题。

在此期间,它会更容易简单地使用CSS切换按钮的可见性:

document.querySelector('.a-enter-vr-button').style.visible = 'none'; 
+0

谢谢。这工作。我的一位同事帮我弄清楚这是一个错误,他实际上给了我和你一样的解决方案。 – Mustang