2016-11-29 7 views
1

3つのJSとTween JSには本当に新しいです。私は私のプロジェクトのためにそれを拾い、最近不満を抱いていました。私はobject1をトゥイーンしようとするのに困っています。シーンには他のオブジェクトもあります。 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

console.log(document.getElementById( "engaged"))は未定義ですか?もしそうなら、あなたは 'window.onload'イベントでクリック関数をラップする必要があります – Ronnie

答えて

0

object1は、onLoadコールバック関数のスコープ内のローカル変数です。このSO answerを参照してください。また、ボタンのイベントリスナーを次のように追加します。

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

function engage() { 
    test.start(); 
}; 
関連する問題