2017-04-13 1 views
1

Ich möchte die Position der Kamera in meiner Aframe App bekommen, aber es ist immer 0, obwohl ich die Kamera herum bewegen.Holen Sie sich die Kameraposition Javascript

Ich habe versucht, sowohl einen Ereignis-Listener und einen regelmäßigen Abruf der Position, aber nicht aktualisierte Werte erhalten.

ist hier die Szene:

<a-scene> 
    <a-entity id="cameraWrapper" position="0 2 10" rotation="0 0 0"> 
    <a-camera near="0.1" user-height="0" id="camera"></a-camera> 
    </a-entity> 
    <a-plane position="0 4 4" rotation="-90 0 -90" width="4" height="4" color="#7BC8A4"></a-plane> 
    <a-sky color="#ECECEC"></a-sky> 
</a-scene> 

Hier ist die Javascript-Code für die Position der Kamera-Überwachung:

<script> 
    window.onload = function() { 
     var pos = 
    document.querySelector('#camera').getAttribute('position'); 
    document.querySelector('[camera]').addEventListener('componentchanged', function (evt) { 
     console.log('CAMERA x/y:', pos.x, pos.y); 
     if (evt.name === 'position') { 
      console.log('Entity has moved from POSITION', evt.oldData, 'to', evt.newData, '!'); 
      return; 
     } 
      return; 
     }); 
    }; 
    </script> 

Aber die Bedingung if (evt.name === Position‘ ') ist nie wahr, und die Kameraposition bleibt 0, auch wenn um die Kameraposition mit Tastatureingaben bewegt wird. Wie kann ich die Kameraposition kontinuierlich erhalten?

Antwort

4

Ich denke, es ist evt.detail.name === 'position'.

Ich empfehle auch eine A-Frame-Komponente eher als lose mit Hilfe von JavaScript:

AFRAME.registerComponent('listener', { 
    tick: function() { 
    console.log(this.el.getAttribute('position')); 
    } 
}); 

HTML:

<a-camera listener></a-camera> 
Verwandte Themen