0
首先,我认为大多数跟随的代码与问题无关,我只是认为它会更多,呃......确切地说是将整个代码部分。
所以只要看看我标记的第一行,非常感谢。JAVASCRIPT:为什么要在一个内部函数中引用ReferenceError?
window.onload = function() {
var WebGLSupported = isWebGLSupported();
var renderer = WebGLSupported ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, 600);
document.body.appendChild(renderer.domElement);
var scene = new THREE.Scene();
var camera = new THREE.Camera(35,window.innerWidth/600,.1,10000);
camera.position.set(-5, 5, 25);
var light = new THREE.PointLight(0xffffff, .4);
light.position.set(10, 10, 10);
scene.addLight(light);
var ambientLight = new THREE.AmbientLight(0xbbbbbb);
scene.addLight(ambientLight);
var materialClass = WebGLSupported ? THREE.MeshLambertMaterial : THREE.MeshBasicMaterial;
var materialWall = new materialClass({ color: 0xffffff, map: THREE.ImageUtils.loadTexture('posts/wholewall.png') });
var i;
var planeWalls=new Array();
for (i=1;i<=10;i++){
planeWalls[i]=new THREE.Mesh(new THREE.PlaneGeometry(18,11,1,1), materialWall);
planeWalls[i].position.z=i*(-5);
scene.addChild(planeWalls[i]);
}
camera.lookAt(planeWalls[1].position);
animate();
function animate() {
renderer.render(scene, camera); <<-------BREAK AT HERE
requestAnimFrame(animate);
}
}
当我在该行, 打破和添加的手表“i”和然后调试器说
Exception: ReferenceError: i is not defined
然后我添加监视所述阵列的上方“ planeWalls”,和还可以获得的ReferenceError,
但我也补充的“场景”的手表,调试器正确地显示其价值,
所以我不知道为什么,
我的意思是,一个内部函数显然可以使用“我”的变量,对吧?
然后,我添加
alert(i);
在内部函数的开头
,
然后调试器显示 “i” 的正确。
那么,这有什么提示吗?
非常感谢。