Scene.Add (Object) crea un "TypeerRor no capturado: no se puede leer la 'longitud' de la propiedad de indefinido"

StackOverflow https://stackoverflow.com/questions/8381584

  •  28-10-2019
  •  | 
  •  

Pregunta

Recibiendo ese error en mi consola JavaScript (en Chrome) con un objeto Collada que intento agregar con un cargador básico. Viene específicamente de la parte "Scene.Add (Object)". Todo lo demás parece funcionar bien. El código para cargar el objeto es el siguiente

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

Esta función se llama durante el inicio de una página que, de lo contrario, funciona bien. Esa página se puede encontrar aquí(La versión sin esta tabla tiene la misma URL, excepto un 4 en lugar de un 3 al final), y el objeto específico aquí.

¿Cuál sería la forma recomendada de superar este error?

¿Fue útil?

Solución

RESUELTO. Los cargadores de Collada simplemente odian ser parte de cualquier función y no funcionarán cuando estén en ellos. Entonces, la solución es tenerlos fuera de las funciones y funcionan bien.

Otros consejos

La respuesta a este problema se debe a la ubicación del scene.add() estar fuera de la función de devolución de llamada. Se llama antes de que la devolución de llamada dispare, de ahí el error indefinido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top