2016-11-29 4 views
1

세 JS 및 Tween JS를 처음 접했습니다. 나는 프로젝트를 위해 그것을 집어 들었고 최근에 좌절감을 느꼈다. 트위닝하는 동안 문제가 발생했습니다 .1. 장면에 다른 물체도 있습니다. object2, obeject3 등 mtlLoaders 및 objLoaders 수를 추가해야하는지 잘 모르겠습니다.OBJLoader 내부의 객체를 트위닝 할 수 없습니다

var mtlLoader = new THREE.MTLLoader(); 
mtlLoader.transparency = true; 
mtlLoader.setBaseUrl('assets/') 
mtlLoader.setPath('assets/'); 
mtlLoader.load('exterior.mtl', function (materials) 
{ 
materials.side = THREE.DoubleSide; 
materials.preload(); 

materials.opacity = 0 
var objLoader = new THREE.OBJLoader(); 
objLoader.setMaterials(materials); 
objLoader.setPath('assets/'); 
objLoader.load('exterior.obj', function (object1) 

{ 
object1.position.y = .01 
object1.position.z = -8 
object1.scale.set(.04, .04, .04); 
object1.castShadow = true; 
object1.receiveShadow = true; 


scene.add(object1); 


}, onProgress, onError); 

}); 

document.getElementById("engage").onclick =  function engage() 
{ 
test.start() 
}; 

여기 내 트윈입니다. 버튼이 눌려지면 시작하기를 원하는대로 트윈이 바로 시작되는 것을 원하지 않습니다.

var test = new TWEEN.Tween(object1.position).to({ x: 1, y: 0, z: 0 }, 2000); 
    test.easing(TWEEN.Easing.Quartic.InOut); 

트윈 내가 scene.add(object1) 후 넣으면 작업을 바로 시작할 것으로 보인다 그러나 나는 버튼을 클릭 할 때 시작합니다. 어떤 도움을 주셔서 감사합니다.

+0

: 그리고 또한 나는 같은 방법으로 버튼에 이벤트 리스너를 추가? 그렇다면'window.onload' 이벤트에서 클릭 기능을 래핑해야합니다. – Ronnie

답변

0

object1onLoad 콜백 기능 범위 내에있는 로컬 변수입니다. 이 SO answer을 참조하십시오. 당신`을 console.log (document.getElementById를은 ("참여"))하면`는 정의되지

document.getElementById("engage").addEventListener("click", engage, false); 

function engage() { 
    test.start(); 
};