有没有办法在 AFrame 中实现 sleep/wait 功能?

Is there any way to implement sleep/wait functionality in AFrame?

我有一个带有一些动画和背景音乐的 AFrame 网页。动画在页面加载后立即开始,但音乐需要时间来加载。有没有像 wait/sleep wrt 场景(或动画)这样的方法,以便我的动画仅在音乐完全加载后才开始。

您必须将您的资产放在 a-assets 元素中,以便它们在加载之前阻止渲染。你可以在这里找到一个例子:https://github.com/aframevr/aframe/blob/master/examples/showcase/anime-UI/index.html#L14

https://aframe.io/docs/0.2.0/core/asset-management-system.html

将资产(imgvideoaudioa-asset-item等媒体元素)放入<a-scene>下的<a-assets>

<a-scene timeout="5000">
  <a-assets>
    <img id="myImg" crossorigin src="myimg.jpg">
    <video id="myVideo autoplay crossorigin src="myvideo.mp4"></video>
  </a-assets>

  <a-video src="#myVideo"></a-video>
</a-scene>

场景会在资源加载完成后阻塞初始化。但是,有一个 timeout 默认为 3 秒,无论如何场景都会开始加载。这可以使用 timeout 属性进行配置,如上所示。

如果你想绝对阻止,你可以将 timeout 设置为非常高的数量。

使用<a-assets>还提供浏览器缓存和各种媒体元素属性的配置,例如crossoriginautoplaypreload.