Three.js 如何使用OBJLoader将一组对象加载到全局变量,而不显示类型错误消息?

Three.js 如何使用OBJLoader将一组对象加载到全局变量,而不显示类型错误消息?,three.js,global-variables,typeerror,objloader,Three.js,Global Variables,Typeerror,Objloader,我使用以下代码加载OBJ对象,但为了在全局变量上加载结果组,我将该变量预先定义为“null”,这会在Firefox控制台中引发类型错误消息。我尝试将其定义为3.Group、3.Mesh等,但都没有用——这导致代码无法执行。 如果没有这些恼人的错误消息,我如何拥有相同的功能 //这导致FF开发工具中出现类型错误消息 var femModel=null; var onProgress=函数(xhr){ if(xhr.Length可计算){ var percentComplete=xhr.loade

我使用以下代码加载OBJ对象,但为了在全局变量上加载结果组,我将该变量预先定义为“null”,这会在Firefox控制台中引发类型错误消息。我尝试将其定义为3.Group、3.Mesh等,但都没有用——这导致代码无法执行。 如果没有这些恼人的错误消息,我如何拥有相同的功能

//这导致FF开发工具中出现类型错误消息
var femModel=null;
var onProgress=函数(xhr){
if(xhr.Length可计算){
var percentComplete=xhr.loaded/xhr.total*100;

console.log(Math.round(percentComplete,2)+'%download');//好的,这比我想象的要简单,这是我的一个逻辑错误,我忽略了代码试图在femModel可用之前访问它:

因此,不是:

var waitid;
function waitmodeltoload(){
    if (!femModel){
        clearTimeout(waitid);
        waitid = setTimeout(setupmodel, 100);
    }
    setupmodel();
}
应该是:

var waitid;
function waitmodeltoload(){
    if (!femModel){
        clearTimeout(waitid);
        waitid = setTimeout(setupmodel, 100);
    }else{
        setupmodel();
    }
}
在第一种情况下,即使未加载模型,也会调用setupmodel()。
只需要一个“else”即可-不再显示红色警报类型的错误消息。

您是否在代码中的任何其他地方使用了
femModel
?错误来自何处(文件/行号)?@JIM01我添加了加载代码的其余部分,引用的行是我注释过的行//
var waitid;
function waitmodeltoload(){
    if (!femModel){
        clearTimeout(waitid);
        waitid = setTimeout(setupmodel, 100);
    }else{
        setupmodel();
    }
}