scene.add (object) создает «Uncaught TypeError: Невозможно прочитать свойство 'length' с неопределенным значением" - PullRequest
0 голосов
/ 05 декабря 2011

Получение этой ошибки в моей консоли javascript (в Chrome) с объектом collada, который я пытаюсь добавить с помощью базового загрузчика. Он специально взят из фрагмента "scene.add (object)". Все остальное работает нормально. Код для загрузки объекта выглядит следующим образом

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

Эта функция вызывается во время инициализации страницы, которая, в противном случае, работает просто отлично. Эту страницу можно найти здесь (версия без этой таблицы имеет тот же URL-адрес, за исключением 4 вместо 3 в конце) и конкретный объект здесь .

Каков рекомендуемый способ обойти эту ошибку?

Ответы [ 2 ]

0 голосов
/ 16 октября 2014

Ответ на этот вопрос связан с расположением scene.add() вне функции обратного вызова. Он вызывается до срабатывания обратного вызова, поэтому возникает неопределенная ошибка.

0 голосов
/ 07 декабря 2011

ПОСТАНОВИЛИ.Погрузчики Collada просто ненавидят быть частью какой-либо функции и не будут работать в них.Таким образом, исправление состоит в том, чтобы они были вне функций, и они прекрасно работали.

...