获取未捕获的语法错误:意外标记)JavaScript

获取未捕获的语法错误:意外标记)JavaScript,javascript,jquery,three.js,Javascript,Jquery,Three.js,我正在编写一个代码来创建一个平面,并通过three.js将对象放在上面 下面是我的代码。 当我试着运行它时 未捕获引用错误:未定义MyTree 最后一行 未捕获的语法错误:意外标记)js/myassn3.js:60 下面是JS代码: (function (mythree , $, undefined) { mythree.init = function (hook) { var checkerBoard = undefined; var WIDTH =

我正在编写一个代码来创建一个平面,并通过three.js将对象放在上面 下面是我的代码。 当我试着运行它时

未捕获引用错误:未定义MyTree

最后一行

未捕获的语法错误:意外标记)js/myassn3.js:60

下面是JS代码:

(function (mythree , $, undefined) {
    mythree.init = function (hook) {
        var checkerBoard = undefined;
        var WIDTH  = 600,
            HEIGHT = 500;
        var renderer = new THREE.WebGLRenderer();
        renderer.setSize(WIDTH, HEIGHT);
        hook.append(renderer.domElement);

        // CAMERA SETUP
        var VIEW_ANGLE = 65, 
            ASPECT = WIDTH / HEIGHT,
            NEAR = 0.1,  // these elements are needed for cameras to
            FAR = 10000; // partition space correctly
        var camera = new THREE.PerspectiveCamera(
            VIEW_ANGLE,
            ASPECT,
            NEAR,
            FAR);
        camera.position.z = 300;
        var controls = new THREE.TrackballControls(camera);
        controls.target.set(0, 0, 0)

        // SCENE SETUP
        var scene = new THREE.Scene();
        scene.add(camera);

        // PLAIN SETUP & APPLYING TEXTURE TO IT
        var plane = new THREE.Mesh(new THREE.PlaneGeometry(300, 300), material);
        plane.overdraw = true;
        scene.add(plane);

        // TEXTURE SETUP
        var texture =THREE.ImageUtils.loadTexture('./images/chessboard.jpg');
        var material = new THREE.MeshLambertMaterial({
            map: texture
        });

        var loader = new THREE.JSONLoader();
        var pointLight = new THREE.PointLight(0xFFFFFF);
        pointLight.position = new THREE.Vector3(-10, 30, 100);
        scene.add(pointLight);
        for (i = 0; i < 4; i++) {
            var a = -130;
            loader.load("piece.json", function (geometry) {
                mesh = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial({ color: 0x000000 }));
                mesh.scale.set(30, 30, 30);
                mesh.position = new THREE.Vector3(a, -130, 15); 
                mesh.rotation.x += 1.5;
                a = a + 75;
                scene.add(mesh);
            });
        }

        var render = function () {
            renderer.render(scene, camera);
            controls.update();
            requestAnimationFrame(render);
        };
        render();
        window.requestAnimationFrame(renderLoop);
})(window.mythree = window.mythree || {}, jQuery)
(函数(mythree,$,未定义){
mythree.init=函数(钩子){
var棋盘=未定义;
可变宽度=600,
高度=500;
var renderer=new THREE.WebGLRenderer();
设置大小(宽度、高度);
附加(renderer.domElement);
//摄像机设置
var视图_角度=65,
纵横比=宽度/高度,
NEAR=0.1,//摄像机需要这些元素
FAR=10000;//分区空间正确
var摄像机=新的三视角摄像机(
视角,
方面,,
近的
远);
摄像机位置z=300;
var控制=新的三个轨迹球控制(摄像头);
控件.target.set(0,0,0)
//场景设置
var scene=new THREE.scene();
场景。添加(摄影机);
//普通设置&对其应用纹理
var平面=新的三点网格(新的三点平面几何体(300300),材质);
plane.overdraw=真;
场景。添加(平面);
//纹理设置
var texture=THREE.ImageUtils.loadTexture('./images/chessboard.jpg');
var material=新的3.0网格LambertMaterial({
贴图:纹理
});
var loader=new THREE.JSONLoader();
var pointLight=新的三点光源(0xFFFFFF);
pointLight.position=新的3.Vector3(-10,30100);
场景。添加(点光源);
对于(i=0;i<4;i++){
var a=-130;
loader.load(“piece.json”,函数(几何体){
mesh=new THREE.mesh(几何体,new THREE.MeshBasicMaterial({color:0x000000}));
网。规模。设置(30,30,30);
mesh.position=新的三个矢量3(a,-130,15);
网格旋转.x+=1.5;
a=a+75;
场景。添加(网格);
});
}
var render=函数(){
渲染器。渲染(场景、摄影机);
控件更新();
请求动画帧(渲染);
};
render();
requestAnimationFrame(renderLoop);
})(window.mythree=window.mythree | |{},jQuery)

有人能帮你解决这个问题吗?

首先:请学会缩进你的代码。请!
如果您的代码是可读的,或者您只是使用了一个IDE(任何为您计算括号、方括号和大括号的IDE),您就不需要请求我们的帮助


因此,问题是您的
mythree.init
函数定义块缺少右括号(
}
)。我不知道您的
mythree.init
在哪里结束(只是因为您的代码没有缩进,而且非常混乱),所以请自己修复它。

我很高兴它有帮助。不管怎样,它起作用了吗?我没有在这里测试它;如果有效,请将此答案标记为“已接受”。。。我是新来的,我需要名声(: