Sök…


Introduktion

En scen representeras av <a-scene> -elementet. Scenen är det globala rotobjektet och alla enheter ingår i scenen.

Scenen ärver från entitetsklassen så den ärver alla dess egenskaper, dess metoder, förmågan att fästa komponenter och beteendet att vänta på alla sina barnnoder (t.ex. <a-assets> och <a-entity> ) att ladda innan du sparkar av renderingsslingan.

parametrar

Parameter detaljer
beteenden Array av komponenter med fästingsmetoder som kommer att köras på varje ram.
kamera Aktiv tre.js-kamera.
duk Hänvisning till dukelementet.
isMobile Huruvida miljön upptäcktes vara mobil eller inte.
object3D THREE.Scene objekt.
renderare Aktiv THREE.WebGLRenderer.
renderStarted Huruvida scenen återges.
effekt Renderer för VR skapad genom att lämna aktiv renderer till THREE.VREffect.
system Instantierade system.
tid Global upptid av scenen på några sekunder.

Anmärkningar

METODER

namn Beskrivning
enterVR Byt till stereo render och skjut innehåll till headsetet. Behöver kallas i en användargenererad händelsehanterare som click . första gången en sida går in i VR.
exitVR Byt till mono-renderare och slutar att presentera innehåll på headsetet.
ladda om Återställ scenen till sitt ursprungliga tillstånd.

EVENEMANG

namn Beskrivning
ange-vr Användaren har angett VR och headsetet började presentera innehåll.
exit-vr Användaren har lämnat VR och headsetet slutade presentera innehåll.
lastad Alla noder har laddats.
renderstart Render loop har börjat.

Fästa scenkomponenter

Komponenter kan anslutas till scenen såväl som enheter. A-Frame levereras med några få komponenter för att konfigurera scenen:

Komponent detaljer
inbäddad Ta bort helskärmstilar från duken.
dimma Lägg till dimma.
tangentbordsgenvägar Växla kortkommandon.
inspektör Injicera A-Frame Inspector.
statistik Växla prestationsstatistik.
vr-mode-ui Växla UI för att komma in och lämna VR.
debug Aktiverar komponent-till-DOM-serialisering.

Använda inbäddade scener

Om du vill använda WebVR-innehåll blandat med HTML-innehåll, till exempel när du skapar ett utökat innehåll för nyckelfönster, kan du använda den embedded taggen. När du använder det här är det möjligt att titta runt i 360 ° -innehåll med hjälp av gyroskopet på din smartphone eller klicka och dra på datorn.

<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>

Debug

Felsökningskomponenten möjliggör komponent-till-DOM-serialisering.

<a-scene debug></a-scene>

Seriellisering av komponent till DOM

Som standard uppdaterar A-Frame inte DOM med komponentdata av prestandaskäl. Om vi öppnar webbläsarens DOM-inspektör ser vi bara komponentnamnen (och inte värdena) synliga.

<a-entity geometry material position rotation></a-entity>

A-Frame lagrar komponentdata i minnet. Att uppdatera DOM tar CPU-tid för att konvertera interna komponentdata till strängar. Om vi vill se DOM-uppdateringen för felsökning kan vi fästa felsökningskomponenten till scenen. Komponenter kommer att leta efter en aktiverad felsökningskomponent innan de försöker serialisera till DOM. Då kommer vi att kunna se komponentdata i DOM:

<a-entity geometry="primitive: box" material="color: red" position="1 2 3" rotation="0 180 0"></a-entity>

Se till att den här komponenten inte är aktiv i produktionen.

Serialiserar manuellt till DOM

För att manuellt serialisera till DOM använder du Entity.flushToDOM eller 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.

Kör innehållsskript på scenen

Det rekommenderade sättet är att skriva en komponent och fästa den till scenelementet.
Scenen och dess barn kommer att initialiseras innan denna komponent.

AFRAME.registerComponent('do-something', {
  init: function () {
    var sceneEl = this.el;
  }
});
<a-scene do-something></a-scene>

Om du av någon särskild anledning föredrar att inte skriva en dedikerad komponent måste du vänta på att scenen ska slutföras och initialiseras:

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');
}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow