2011-12-05 7 views
0

私は基本的なローダで追加しようとしてるのCOLLADAオブジェクトと(Chromeで)私のJavaScriptコンソールでそのエラーを取得します。具体的には、 "scene.add(オブジェクト)"チャンクから来ています。他のすべてがうまくいくようです。scene.add(オブジェクト)が作成した「捕捉されない例外TypeErrorを:未定義のプロパティを読み取ることができません 『長さ』」

var ltable; 
var furnLoad = new THREE.ColladaLoader(); 

function addlt(){ 
     furnLoad.load('../Models/Furniture/foldingLongTable.dae', function(collada){ 
       ltable = collada.scene; 
       ltable.scale.x=ltable.scale.y=ltable.scale.z=1; 
       ltable.updateMatrix(); 
       ltable.position.x=ltable.position.z=ltable.position.y=0; 
     }); 
     scene.add(ltable); 
} 

この関数は、そうでない場合、正常に動作しますページの初期化中に呼び出されると、次のようにオブジェクトをロードするためのコードです。そのページはhere(この表のないバージョンは末尾に3ではなく4を除いて同じURLを持ちます)と特定のオブジェクトhereがあります。このエラーを乗り越えるための推奨方法だろう何

+0

furnLoad.loadに渡された匿名関数が呼び出されていないことを任意のチャンスがありますか?それは決して決して設定されていないltavesを引き起こすでしょう。あなたはltableの価値を主張しようとするべきです。可能であれば –

+0

が可能です。私はちょうど "scene.add(ltable);コメントしました。 "if(!ltable){alert(" No table ")};"という警告を追加しました。見る。アラートがスローされなかったので、正しく設定されていると推測しています。 – rougegoat

+0

次に、私はどちらの知識も持っていないので、カラダやジャバスクリプトに関する知識が豊富な人を待たなければなりません。 :) –

答えて

0

は解決します。 Colladaローダーは、どの機能の一部であることが嫌いであり、その機能が動作していない場合は動作しません。したがって、修正は機能の外にそれらを持つことであり、うまく動作します。

+0

それはどういう意味ですか?あなたはそれらをグローバルスコープで実行しなければなりませんか? – msfeldstein

0

この問題に対する答えは、コールバック関数の外にあるscene.add()の場所によるものです。コールバックが起動する前に呼び出されているため、未定義のエラーです。

関連する問題