2016-10-26 1 views
2

私は3つのjのオブジェクトに色を入れようとしています。 いろいろ試してみましたが、うまくいきませんでした。3つのJSオブジェクトが読み込まれ、オブジェクトに色付けされます

var objectLoader = new THREE.ObjectLoader(); 
objectLoader.load("hoesje/hoesje.json", function (object) { 
    scene.add(object); 
}); 

誰かが私を助けてくれることを祈っています。

var loader = new THREE.OBJLoader(); 
loader.addEventListener('load', function (event) { 
    var object = event.content; 
    object.traverse(function (child) { 
     if (child instanceof THREE.Mesh) 
      child.material.color.setRGB (1, 0, 0); 
    }); 
    scene.add(object); 
}); 
loader.load('hoes.obj'); 

が、その後、私はこのエラーを取得する:TypeError例外:loader.addEventListenerが機能

var loader = new THREE.OBJLoader(); 
loader.load('load', function (event) { 
    var object = event.content; 
    object.traverse(function (child) { 
     if (child instanceof THREE.Mesh) 
      child.material.color.setRGB (1, 0, 0); 
    }); 
    scene.add(object); 
}); 
loader.load('hoes.obj'); 

ではありません私は.LOADする.addEventListenerを変更しましたが、それは私に次のエラー NS_ERROR_DOM_BAD_URI与える:へのアクセスを制限されたURIは、上記のコードはThreeJSでモデルをロードするために、私の作業コードで、このコードでは、私は関数tをimplentしたい

var objectLoader = new THREE.ObjectLoader(); 
objectLoader.load("hoesje/hoesje.json", function (object) { 
scene.add(object); 
}); 

を否定しました色を変えて...どんなアイデア?

+0

コードの最初の部分は機能しますか? – Craicerjack

+0

はい、最初に投稿したコードがモデルを読み込んでブラウザに表示します。私はそのオブジェクトに色を追加したい。 2番目のコードはまったく機能しません。モデルは表示されません。 –

+0

なぜ 'load()'のような 'OBJLoader' [methods](https://threejs.org/docs/#Reference/Loaders/OBJLoader)の代わりに' loader'にイベントリスナーを使用していますか?最初の作業コードスニペット – Craicerjack

答えて

0

私は3Jを知っていませんが、あなたのコードを見て、問題はイベントリスナーを追加しているようです。 OPの編集にrespondeで

var loader = new THREE.OBJLoader(); 
loader.load('hoes.obj', function(object) { 
    object.traverse(function (child) { 
     if (child instanceof THREE.Mesh) 
      child.material.color.setRGB (1, 0, 0); 
    }); 
    scene.add(object); 
}) 

EDIT を:なぜOBJLoaderが持っているmethodsを使用していません。​​方法:
.load (url, onLoad, onProgress, onError)

url — required
onLoad — Will be called when load completes. The argument will be the loaded Object3D.
onProgress — Will be called while load progresses. The argument will be the XmlHttpRequest instance, that contain .total and .loaded bytes.
onError — Will be called when load errors.

urlではないようです loader.load('load', function (event)

load以下のコードを考えます。
function(event) - イベントではなく、ロードされたObject3Dです。
eventListenerを作成してそれをトリガーするのではなく、上記の答えでload()メソッドが.obj resourceで呼び出されるのはこのためです。

+0

downvotesが高く評価されています。 – Craicerjack

+0

あなたのコードCraicerjackを試しましたが、私は次のエラーが発生します: TypeError:geometry.computeCentroidsは関数ではありません [マイヤーインフォメーション] –

+0

例を取り組んでいますか?これは問題かもしれません - http://stackoverflow.com/questions/26322640/error-in-objloader-of-three-js-lilbrary – Craicerjack

関連する問題