2016-10-26 3 views
2

세 개의 색으로 개체에 색을 넣으려고합니다. 다른 것들을 시도했지만 작동하지 않았다.세 개의 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'); 

는하지만이 오류를 얻을 : 형식 오류 : 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'); 

내가 .addEventListener이 .load으로 변경 않았다하지만 나에게 다음과 오류 NS_ERROR_DOM_BAD_URI 제공되지 않습니다 :에 대한 액세스 제한 URI는 위의 코드는 ThreeJS의 모델을로드하는 내 작업 코드이 코드에서 나는 함수 t을 implent 싶습니다

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

거부 색상 변경 o 아이디어?

+0

코드의 첫 번째 부분이 작동합니까? – Craicerjack

+0

예 처음 게시 한 코드가 모델을로드하고 브라우저에 표시합니다. 그 객체에 색을 추가하고 싶습니다. 두 번째 코드가 전혀 작동하지 않습니다. 모델이 표시되지 않습니다. –

+0

왜 'Loader'와 같은'OBJLoader' [methods] (https://threejs.org/docs/#Reference/Loaders/OBJLoader) 중 하나 대신에'loader'에 이벤트 리스너를 사용하고 있습니까? 첫 번째 작업 코드 스 니펫 – Craicerjack

답변

0

저는 3JS를 모르지만 코드를보고 있으면 이벤트 수신기를 추가하는 것처럼 보입니다. 왜 OBJLoader가 가지고있는 methods 것을 사용하지 :

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

편집 을 responde에서 영업 이익의 편집 할 수 있습니다. .load() 방법
.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

관련 문제