一段时间以来,我一直在尝试将数据添加到我的数组中,但它不起作用。我有以下代码:
function OBJMesh(file)
{
this.modelVertex = [];
this.modelColor = [];
var that = this;
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState == 4)
{
if(rawFile.status === 200 || rawFile.status === 0)
{
var allText = rawFile.responseText;
var lines = allText.split("\n");
for(var i = 0; i < lines.length; i ++)
{
var lineData = lines[i];
var lineString = lineData.split(" ");
if(lineString[0] === "v")
{
var x = parseFloat(lineString[1]);
var y = parseFloat(lineString[2]);
var z = parseFloat(lineString[3]);
/*
this.modelVertex.push(x);
this.modelVertex.push(y);
this.modelVertex.push(z);
this.modelColor.push(0.0);
this.modelColor.push(0.0);
this.modelColor.push(0.0);
this.modelColor.push(1.0);
*/
that.modelVertex.push(10.0);
//document.getElementById("textSection").innerHTML = "testing";
}
}
}
}
}
rawFile.send();
}
OBJMesh.prototype.getModelVertex = function ()
{
return this.modelVertex;
};
OBJMesh.prototype.getModelColor = function ()
{
return this.modelColor;
};
如果我注释掉this.modelVertex.push(10.0);
它会通过错误并打印出“测试”。但是如果我取消注释它,它就会卡在那里并且不会打印任何东西。为什么要这样做?我该如何解决它,以便它实际上将给定的数据推送到this.modelVertex
数组?
非常感谢
编辑:在dystroy告诉我该怎么做之后,我编辑了我的代码,当我尝试打印OBJMesh构造函数中的值时它确实有效(如上所示),但是当我尝试通过在我的主函数中创建对象来做到这一点时(如下所示)它不打印任何东西。
var cubeModel;
function main()
{
cubeModel = new OBJMesh("file:///Users/Danny/Desktop/3DHTMLGame%202/cube.obj");
document.getElementById("textSection").innerHTML = cubeModel.getModelVertex();
}