2016-09-15 13 views
2

フレームにthree.jsライブラリを使用しようとしています。
例えば、レンダラーをフレームで取得するには

var helper = new THREE.MMDHelper(renderer); 

Iはフレーム内のレンダラを取得する方法がわかりません。

a-sceneにはレンダラープロパティがあります。
=>https://aframe.io/docs/0.3.0/core/scene.html
しかし、それは未定義です。

document.querySelector('a-scene').renderer; <= undefined 

方法rendereに行けばよいのか教えて下さい

答えて

1

あなたはレンダラが使用可能になる前にシーンが初期化するのを待つ必要があります:

sceneEl.addEventListener('render-target-loaded', function() { 
    // sceneEl.renderer is now set. 
}); 
+0

私はそれを手に入れました!ありがとう。ありがとうございました。 –

0

あなたは内にコードを記述する場合あなたがすべてがロードされていることを保証することができます:

AFRAME.registerComponent('do-something', { 
    init: function() { 
    console.log(this.el.renderer); 
    } 
}); 


<script src="do-something-component.js"></script> 
<a-scene do-something></a-scene> 
0

ありがとう、ドンマッカリーとngokevin。

ちなみに、私はカメラのプロパティを探しました。
私はカメラのプロパティを 'camera-set-active'を使って得ることができます。
ご参考ください。

<html> 
    <head> 
    <title>a-frame sample</title> 
    <script src="https://aframe.io/releases/0.3.0/aframe.min.js"></script> 
    </head> 
    <body> 
    <a-scene do-something> 
    </a-scene> 
    </body> 
    <script> 

var sceneEl = document.querySelector('a-scene'); 

window.onload = function() { 
    console.log('window.onload'); 
    console.log(document.querySelector('a-scene').renderer); // undefined 
    console.log(document.querySelector('a-scene').camera); // undefined 
} 

AFRAME.registerComponent('do-something', { 
    init: function() { 
    console.log('do-something init'); 
    console.log(this.el.renderer); // OK 
    console.log(this.el.camera);  // undefined 

    this.el.addEventListener('camera-set-active', this.cameraSetActive.bind(this)); 
    }, 

    cameraSetActive: function() { 
    console.log('do-something cameraSetActive'); 
    console.log(this.el.renderer); // OK 
    console.log(this.el.camera);  // OK 
    } 
}); 

sceneEl.addEventListener('render-target-loaded', function() { 
    console.log('render-target-loaded'); 
    console.log(document.querySelector('a-scene').renderer); // OK 
    console.log(document.querySelector('a-scene').camera); // undefined 
}); 

sceneEl.addEventListener('camera-ready', function() { 
    console.log('camera-ready'); 
    console.log(document.querySelector('a-scene').renderer); // OK 
    console.log(document.querySelector('a-scene').camera); // undefined 
}); 

sceneEl.addEventListener('camera-set-active', function() { 
    console.log('camera-set-active'); 
    console.log(document.querySelector('a-scene').renderer); // OK 
    console.log(document.querySelector('a-scene').camera); // OK 
}); 

    </script> 
</html> 
関連する問題