Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 语法错误JSONLoader_Javascript_Json_Three.js - Fatal编程技术网

Javascript 语法错误JSONLoader

Javascript 语法错误JSONLoader,javascript,json,three.js,Javascript,Json,Three.js,我正在尝试将我的模型从c4d导入three.js。 我知道有一款车载设备对我来说很好用。如果我想使用导出的波前(.obj)并使用convert_obj_three.py进行转换,它不会返回任何错误,json文件看起来也不错 但是如果我想在我的three.js-script中加载生成的.js文件,它会返回: 未捕获的语法错误:意外标记 这就是我尝试过的: var loader2 = new THREE.JSONLoader(); loader2.load('assets/models/test.j

我正在尝试将我的模型从c4d导入three.js。 我知道有一款车载设备对我来说很好用。如果我想使用导出的波前(.obj)并使用convert_obj_three.py进行转换,它不会返回任何错误,json文件看起来也不错

但是如果我想在我的three.js-script中加载生成的.js文件,它会返回:

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

这就是我尝试过的:

var loader2 = new THREE.JSONLoader();
loader2.load('assets/models/test.js', createScene);
function createScene(){
    mesh = new THREE.Mesh();
    scene.add(mesh);
}
test.js:

错误:

以下是全部代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>three.js webgl - loaders - OBJ loader</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
        <style>
            body {
                font-family: Monospace;
                background-color: gray;
                color: #fff;
                margin: 0px;
                overflow: hidden;
            }
            #info {
                color: #fff;
                position: absolute;
                top: 10px;
                width: 100%;
                text-align: center;
                z-index: 100;
                display:block;
            }
            #info a, .button { color: #f00; font-weight: bold; text-decoration: underline; cursor: pointer }
        </style>
    </head>

    <body>
        <div id="info">
        <a href="http://threejs.org" target="_blank">three.js</a> - OBJLoader test
        </div>

        <script src="assets/three.min.js"></script>
        <script src="assets/OBJLoader.js"></script>

        <script src="assets/TrackballControls.js"></script>

        <script src="assets/Detector.js"></script>
        <script src="assets/stats.min.js"></script>

        <script>

            var container, stats;

            var camera, scene, controls, renderer;

            var mouseX = 0, mouseY = 0;

            var windowHalfX = window.innerWidth / 2;
            var windowHalfY = window.innerHeight / 2;


            init();
            animate();


            function init() {

                container = document.createElement( 'div' );
                document.body.appendChild( container );

                camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 2000 );
                camera.position.z = 900;

                // controls

                controls = new THREE.TrackballControls( camera );

                controls.rotateSpeed = 5.0;
                controls.zoomSpeed = 5;
                controls.panSpeed = 2;

                controls.noZoom = false;
                controls.noPan = false;

                controls.staticMoving = true;
                controls.dynamicDampingFactor = 0.3;

                // scene

                scene = new THREE.Scene();

                var ambient = new THREE.AmbientLight( 0xfff3dd );
                scene.add( ambient );

                var directionalLight = new THREE.DirectionalLight( 0xffeedd );
                directionalLight.position.set( 0, 0, 1 ).normalize();
                scene.add( directionalLight );

                // model

                var loader2 = new THREE.JSONLoader();
                loader2.load('assets/models/test.js', function (geometry, materials){

                    mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
                    scene.add(mesh);

                });

                renderer = new THREE.WebGLRenderer();
                renderer.setSize( window.innerWidth, window.innerHeight );
                container.appendChild( renderer.domElement );
                window.addEventListener( 'resize', onWindowResize, false );

            }

            function onWindowResize() {

                windowHalfX = window.innerWidth / 2;
                windowHalfY = window.innerHeight / 2;

                camera.aspect = window.innerWidth / window.innerHeight;
                camera.updateProjectionMatrix();

                controls.handleResize();
                renderer.setSize( window.innerWidth, window.innerHeight );

            }

            function animate() {

                requestAnimationFrame( animate );
                render();

            }

            function render() {

                controls.update();
                renderer.render( scene, camera );

            }

        </script>
    </body>
</html>

three.js webgl-加载程序-OBJ加载程序
身体{
字体系列:Monospace;
背景颜色:灰色;
颜色:#fff;
边际:0px;
溢出:隐藏;
}
#信息{
颜色:#fff;
位置:绝对位置;
顶部:10px;
宽度:100%;
文本对齐:居中;
z指数:100;
显示:块;
}
#信息a、.按钮{颜色:#f00;字体大小:粗体;文本装饰:下划线;光标:指针}
-车载试验
var容器,stats;
摄像机、场景、控件、渲染器;
var mouseX=0,mouseY=0;
var windowHalfX=window.innerWidth/2;
var windowHalfY=window.innerHeight/2;
init();
制作动画();
函数init(){
container=document.createElement('div');
文件.正文.附件(容器);
摄像头=新的三个透视摄像头(45,window.innerWidth/window.innerHeight,12000);
摄像机位置z=900;
//控制
控件=新的三个轨迹球控件(摄像头);
controls.rotateSpeed=5.0;
controls.zoomSpeed=5;
控制。速度=2;
controls.noZoom=false;
controls.noPan=false;
controls.staticMoving=true;
controls.dynamicDampingFactor=0.3;
//场面
场景=新的三个。场景();
var环境光=新的三个环境光(0xfff3dd);
场景。添加(环境光);
var方向灯=新的三个方向灯(0xffeedd);
directionalLight.position.set(0,0,1).normalize();
场景。添加(方向光);
//模型
var loader2=new THREE.JSONLoader();
loader2.load('assets/models/test.js',函数(几何体、材质){
网格=新的三个网格(几何体,新的三个网格面材质(材质));
场景。添加(网格);
});
renderer=new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth、window.innerHeight);
container.appendChild(renderer.doElement);
addEventListener('resize',onWindowResize,false);
}
函数onWindowResize(){
windowHalfX=window.innerWidth/2;
windowHalfY=window.innerHeight/2;
camera.aspect=window.innerWidth/window.innerHeight;
camera.updateProjectMatrix();
controls.handleResize();
renderer.setSize(window.innerWidth、window.innerHeight);
}
函数animate(){
请求动画帧(动画);
render();
}
函数render(){
控件更新();
渲染器。渲染(场景、摄影机);
}

加载json文件的函数:

THREE.JSONLoader.prototype.load = function ( url, callback, texturePath )



loader2.load('assets/models/test.js', function(geometry, materials){

   mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
   scene.add(mesh);

});

请显示
assets/models/test.js的内容
我认为您没有提供足够的信息来解决您的问题。你能检查一下你的控制台,告诉我们语法错误发生在哪一行吗?这里没有什么突出的地方。分享“test.js”的内容,可能有一些与“;”相关的语法错误。我之所以选择这个页面,是因为这里的这个页面:讨论已经一年了。代码已更改。好的,我已将代码更改为您的版本。仍然给出相同的错误。意外的令牌错误与JSONLoader无关,但很难说什么时候看不到代码。我尝试了你的json,它正在工作