Ich habe eine AFrame Webseite mit einigen Animationen & Hintergrundmusik. Die Animation startet, sobald die Seite geladen wird, die Musik jedoch Zeit zum Laden benötigt. Gibt es einen Weg wie warten/schlafen in der Szene (oder Animation), so dass meine Animation erst startet, nachdem die Musik vollständig geladen wurde.Gibt es eine Möglichkeit, Sleep/Wait-Funktionalität in AFrame zu implementieren?
Antwort
Sie müssen Ihre Assets in das Element a-assets
platzieren, damit sie die Wiedergabe blockieren, bis sie geladen werden. Sie können ein Beispiel finden Sie hier: 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
Platz Vermögen (Medienelemente wie img
, video
, audio
, a-asset-item
) in <a-assets>
unter <a-scene>
:
<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>
Die Szene wird Initialisierungsbaustein unter Assets werden geladen. Allerdings gibt es eine Timeout, die standardmäßig 3 Sekunden dauert, wo die Szene unabhängig davon geladen wird. Dies ist mit dem Attribut timeout
konfigurierbar, wie oben gezeigt.
Wenn Sie absolut blockieren möchten, können Sie die timeout
auf einen sehr hohen Betrag setzen.
Mit <a-assets>
gibt auch Browser-Caching und Konfiguration verschiedenen Medienelementattribute wie crossorigin
, autoplay
, preload
.