我有以下代碼:瀏覽器總是崩潰當我運行我的代碼
var images = ["image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.jpg", "image6.jpg", "image7.jpg", "image8.jpg"];
var objects = [];
var geometry;
while(objects.length < images.length) {
var imagesIndex = 0;
var object = [
texture1 = textureLoader.load("data/"+ images[imagesIndex]),
material1 = new THREE.MeshBasicMaterial({ map: texture1 }),
objectMesh = new THREE.Mesh(geometry, material1),
location3d = new THREE.Vector3(Math.random()* 500-250, Math.random()* 500-250, Math.random()* 500+120)
];
var overlapping = false;
for (var j = 0; j < objects.length; j++) {
var projectCubeLoc = objects[j][0][3];
了var otherCubesLoc = projectCubeLoc [J];生成錯誤
var otherCubesLoc = projectCubeLoc[j];
var distance = projectCubeLoc.distanceTo(otherCubesLoc);
console.log(distance);
if (distance < 150) {
overlapping = true;
break;
};
};
放在語句的循環之外,因爲重疊是假的至少一個對象將在陣列中把
if (!overlapping) {
objects.push(object);
imagesIndex++;
};
};
,但現在我得到類型錯誤:無法讀取屬性「 0'的undefined
當我在瀏覽器中運行此代碼瀏覽器只是崩潰...我沒有得到任何錯誤消息的瀏覽器將只是崩潰並退出它自我... 我認爲它有一些東西用while循環做,但我無法形象出了什麼毛病...
任何幫助或提示,非常感謝!
,如果有更多的代碼需要,或者如果您想看到的jsfiddle只問:)
任何人當您啓動循環中,'objects'數組爲空。所以你的'for'循環永遠不會運行。你的'for'循環內的代碼是唯一能夠將任何東西添加到'objects'數組中的東西。你有一個無限循環。 –
沒有JavaScript應該使瀏覽器崩潰並突然退出。您的代碼中可能存在一個錯誤,但瀏覽器中也存在一個錯誤,並且行爲因瀏覽器而異(因此您應該說您使用的是哪個瀏覽器)。您也可以嘗試在代碼中的各個位置插入警報,以瞭解它在崩潰瀏覽器之前得到的距離。然後,您可以嘗試解決有問題的行(並可能向瀏覽器作者提交錯誤報告)。 –