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」 的正確。
那麼,這有什麼提示嗎?
非常感謝。