aframe
Szene
Suche…
Einführung
Eine Szene wird durch das Element <a-scene>
. Die Szene ist das globale Stammobjekt, und alle Entitäten befinden sich in der Szene.
Die Szene erbt von der Entity-Klasse, sodass sie alle ihre Eigenschaften, ihre Methoden, die Möglichkeit zum Anfügen von Komponenten und das Verhalten zum Warten auf alle untergeordneten Knoten (z. B. <a-assets>
und <a-entity>
) <a-entity>
vor dem Start der Render-Schleife laden.
Parameter
Parameter | Einzelheiten |
---|---|
Verhalten | Array von Komponenten mit Tick-Methoden, die auf jedem Frame ausgeführt werden. |
Kamera | Aktive Drei-Kamera. |
Segeltuch | Verweis auf das Canvas-Element. |
isMobile | Ob die Umgebung als mobil erkannt wird oder nicht. |
object3D | THREE.Scene-Objekt. |
Renderer | Active THREE.WebGLRenderer. |
RenderStarted | Ob Szene gerendert wird. |
bewirken | Renderer für VR, erstellt durch Übergeben des aktiven Renderers an THREE.VREffect. |
Systeme | Instantiierte Systeme. |
Zeit | Globale Betriebszeit der Szene in Sekunden. |
Bemerkungen
Methoden
Name | Beschreibung |
---|---|
enterVR | Wechseln Sie zu Stereo-Rendering und verschieben Sie den Inhalt auf das Headset. Muss in einem vom Benutzer generierten Event-Handler wie click aufgerufen werden. Beim ersten Aufrufen einer Seite in VR. |
exitVR | Wechseln Sie zum Mono-Renderer, und der Inhalt wird nicht mehr auf dem Headset angezeigt. |
neu laden | Bringen Sie die Szene in ihren ursprünglichen Zustand zurück. |
VERANSTALTUNGEN
Name | Beschreibung |
---|---|
enter-vr | Der Benutzer hat VR eingegeben und das Headset beginnt mit der Präsentation von Inhalten. |
exit-vr | Der Benutzer hat VR verlassen und das Headset wurde nicht mehr angezeigt. |
geladen | Alle Knoten wurden geladen. |
Renderstart | Die Render-Schleife hat begonnen. |
Szenenkomponenten anbringen
Komponenten können sowohl an die Szene als auch an Objekte angehängt werden. A-Frame wird mit wenigen Komponenten zur Konfiguration der Szene geliefert:
Komponente | Einzelheiten |
---|---|
eingebettet | Entfernen Sie Vollbildstile von der Leinwand. |
Nebel | Fügen Sie Nebel hinzu. |
Tastatürkürzel | Tastenkombinationen umschalten |
Inspektor | Injizieren Sie den A-Frame Inspector. |
Statistiken | Leistungsstatistiken umschalten |
vr-mode-ui | Umschalten der Benutzeroberfläche zum Ein- und Ausschalten von VR. |
debuggen | Aktiviert die Serialisierung von Komponenten zu DOM. |
Eingebettete Szenen verwenden
Wenn Sie WebVR-Inhalte, die mit HTML-Inhalt gemischt sind, verwenden möchten, beispielsweise wenn Sie einen erweiterten Inhalt eines Showcase-Schlüssels erstellen, können Sie das embedded
Tag verwenden. Wenn Sie dies verwenden, können Sie sich mit dem Gyroskop Ihres Smartphones in 360 ° -Inhalten umsehen oder auf den Computer klicken und ziehen.
<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
<div class="vrcontent">
<a-scene embedded>
<a-assets>
<img id="sky" src="https://c1.staticflickr.com/5/4248/34705881091_37b5cf2d28_o.jpg" alt="" />
</a-assets>
<a-sky src="#sky"></a-sky>
</a-scene>
</div>
<div class="overlay">
<button class="calltoaction">Click me!</button>
</div>
<div class="content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti animi aliquid architecto quibusdam ipsum, debitis dolor mollitia. Quidem, cumque quos porro doloribus iure dolore illum, qui rem asperiores unde laboriosam.Dolorum tempora quam eveniet ea recusandae deserunt, velit similique. Cum sunt rerum beatae officiis qui sed molestiae et ullam quasi, harum maxime vel, aspernatur quidem molestias. Provident quae illo harum?Sunt expedita, repellat saepe vel accusamus odio. Alias, obcaecati harum earum inventore asperiores quaerat, sit autem nostrum. Sunt illo numquam, temporibus pariatur optio nam, expedita necessitatibus aliquid nemo maxime nisi. Praesentium corporis, ea sunt asperiores, recusandae animi, rem doloribus, possimus cum laudantium libero. Maiores a, iusto aspernatur reiciendis ratione sunt nisi, rem, quasi temporibus ullam non. Neque repellat facilis illo.Quibusdam reiciendis sunt tempora fuga deleniti, molestias temporibus doloremque. Nam sed consequatur consectetur ut tempora a nesciunt, perspiciatis dolorem reprehenderit modi enim at veritatis, excepturi voluptate quod, voluptatibus voluptas. Cum.Debitis, nesciunt, repellat voluptatem sapiente incidunt quidem asperiores reprehenderit vero quisquam placeat sunt voluptatibus velit. Consectetur atque voluptates, repellendus facere sequi ea totam quia quis non incidunt. Soluta, aut, provident. Eos sequi itaque dolorem atque ex id maiores dolor eaque libero iste deserunt ea voluptate minima cum laboriosam, qui animi, fuga suscipit necessitatibus vero, autem blanditiis, totam nulla. Quo, et. Quisquam commodi voluptatum dolorem aspernatur, distinctio et ullam laborum laboriosam quo nisi, praesentium quaerat ab excepturi. Illum harum doloremque, accusantium, beatae culpa assumenda laboriosam, quos mollitia aperiam dolorem praesentium minus!</p>
</div>
Debuggen
Die Debug-Komponente ermöglicht die Serialisierung von Komponente zu DOM.
<a-scene debug></a-scene>
Komponenten-zu-DOM-Serialisierung
Aus Performancegründen aktualisiert A-Frame das DOM standardmäßig nicht mit Komponentendaten. Wenn wir den DOM-Inspector des Browsers öffnen, werden nur die Komponentennamen (und nicht die Werte) angezeigt.
<a-entity geometry material position rotation></a-entity>
A-Frame speichert die Komponentendaten im Speicher. Das Aktualisieren des DOM benötigt CPU-Zeit für die Konvertierung interner Komponentendaten in Strings. Wenn wir das DOM-Update für Debugging-Zwecke anzeigen möchten, können wir die Debug-Komponente an die Szene anhängen. Komponenten prüfen, ob eine aktivierte Debug-Komponente vorhanden ist, bevor sie versuchen, die DOM zu serialisieren. Dann können wir Komponentendaten im DOM anzeigen:
<a-entity geometry="primitive: box" material="color: red" position="1 2 3" rotation="0 180 0"></a-entity>
Stellen Sie sicher, dass diese Komponente in der Produktion nicht aktiv ist.
Manuelles Serialisieren in DOM
Um die DOM manuell zu serialisieren, verwenden Sie Entity.flushToDOM oder Component.flushToDOM:
document.querySelector('a-entity').components.position.flushToDOM(); // Flush a component.
document.querySelector('a-entity').flushToDOM(); // Flush an entity.
document.querySelector('a-entity').flushToDOM(true); // Flush an entity and its children.
document.querySelector('a-scene').flushToDOM(true); // Flush every entity.
Ausführen von Content-Skripts in der Szene
Die empfohlene Methode ist, eine Komponente zu schreiben und sie an das Szenenelement anzuhängen.
Die Szene und ihre Kinder werden vor dieser Komponente initialisiert.
AFRAME.registerComponent('do-something', {
init: function () {
var sceneEl = this.el;
}
});
<a-scene do-something></a-scene>
Wenn Sie aus bestimmten Gründen keine dedizierte Komponente schreiben möchten, müssen Sie warten, bis die Szene das Initialisieren und Anfügen abgeschlossen hat:
var scene = document.querySelector('a-scene');
if (scene.hasLoaded) {
run();
} else {
scene.addEventListener('loaded', run);
}
function run () {
var entity = scene.querySelector('a-entity');
entity.setAttribute('material', 'color', 'red');
}