私はJavascriptを初めて使用し、さらにThree.JSを新しくしました。私は正常にobjを取得し、変換して、JSONオブジェクトとして私のサイトにthree.js THREE.JSONLoader経由でロードしました。私が望むようにそれは表示されますが、他のTHREE.Meshオブジェクトのように回転、アニメーション、および操作ができる必要があります。私の最初の試みは、the first three.js tutorialの立方体のようにそれを回転させてアニメートすることです(メッシュの椅子)。書かれた場合しかし、オブジェクトをロードし、「アニメーション()」関数内でそれを回転させるように試みた後、私は「myChair」を設定している変数は、「未定義」エラーを生成している。JSONオブジェクトをthree.jsでロードした後に操作する
myChair.rotation.x += 0.1;
私はこのJSONをTHREE.Meshオブジェクトのように扱うためにthree.jsのために取らなければならない別のステップがあると思いますか?ここで
は私のコードです:
viewport = document.getElementById('mycanvas');
h = viewport.offsetHeight;
w = viewport.offsetWidth;
var scene = new THREE.Scene();
scene.background = new THREE.Color(0xffffff);
var camera = new THREE.PerspectiveCamera(75, w/h, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(w, h);
viewport.appendChild(renderer.domElement);
//end viewport
var myChair = new THREE.JSONLoader();
myChair.load(
\t 'https://api.myjson.com/bins/iaxn7',
\t function (geometry, materials) {
\t \t var material = new THREE.MeshBasicMaterial({ color: 0x0000ff });
\t \t var object = new THREE.Mesh(geometry, material);
\t \t scene.add(object);
\t }
);
alert(myChair); //this alert confirms that an object is stored in the variable
var animate = function() {
requestAnimationFrame(animate);
myChair.rotation.x += 0.1;
myChair.rotation.y += 0.1;
renderer.render(scene, camera);
};
animate();
本当にありがとうございました!どんな助けでも大歓迎です。
更新:Marcoの応答後。
var myChairLoader = new THREE.JSONLoader();
var chairMesh = null;
myChairLoader.load(
\t 'https://api.myjson.com/bins/iaxn7',
\t function (geometry, materials) {
\t \t var material = new THREE.MeshBasicMaterial({ color: 0x0000ff });
\t \t var chairMesh = new THREE.Mesh(geometry,material);
\t \t scene.add(chairMesh);
renderer.render(scene,camera);
\t }
);
var animate = function(){
requestAnimationFrame(animate);
if(chairMesh !== null){
alert();
chairMesh.rotation.x += 0.1;
chairMesh.rotation.y += 0.1;
}
renderer.render(scene,camera);
};
animate();
https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call – Will