简体   繁体   English

为什么会出现错误“未捕获的TypeError:未定义不是函数”?

[英]Why is there an error, “Uncaught TypeError: undefined is not a function”?

The error is on this line: var controls = new THREE.TrackballControls( camera ); 错误在此行上:var controls = new THREE.TrackballControls(camera); I checked the order of my scripts in the HTML file, which look fine, so I don't know the reason for the error. 我检查了HTML文件中脚本的顺序,看起来不错,所以我不知道错误的原因。

HTML: HTML:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Graphics Lab</title>

    <!-- Bootstrap core CSS -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <style>
    .starter-template {
        padding: 40px 15px;
        text-align: center;
    }
  #viewport {
    height: 500px;
    width: 600px;
    background: white;
    margin: 0px auto;
  }
  #viewport-container {

  }
    </style>
    <script src="http://code.jquery.com/jquery-2.1.0.js"></script>
    <script src="js/TrackballControls.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/three.js/r61/three.js"></script>
    <script src="js/graphics.js"></script>

  </head>

  <body>

    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Lab 3</a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>

    <div class="container">

      <div class="starter-template">
        <h1>Graphics</h1>
        <p class="lead">This is my 3d Graphics scene</p>

        <div id="viewport-container" class="well">
          <div id="viewport">
          </div>
        </div>

      </div>

      <script>

      //initialize the viewport
      lab3.init($('#viewport'));

      </script>

    </div><!-- /.container -->
  </body>
</html>

JavaScript: JavaScript的:

(function ( lab3 , $, undefined) {

lab3.init = function(hook) {
    var WIDTH = 600,
    HEIGHT = 500;
    var renderer = new THREE.WebGLRenderer();
    renderer.setSize(WIDTH, HEIGHT);
    hook.append(renderer.domElement);
    var scene = new THREE.Scene();

    var pointLight =
    new THREE.PointLight(0xFFFFFF);
    pointLight.position = new THREE.Vector3(-10, 100, 100);
    scene.add(pointLight);

    var VIEW_ANGLE = 65, //65 FOV is most 'natural' FOV
    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 )

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

    var material =
    new THREE.MeshLambertMaterial(
    {
    color: 0x00bbcc
    });

    var cube = new THREE.Mesh(
    new THREE.CubeGeometry(
    40, 55, 30),
    material);
    scene.add(cube);

    function renderLoop() {
    renderer.render(scene, camera);
    controls.update();
    window.requestAnimationFrame(renderLoop);
    }
    window.requestAnimationFrame(renderLoop);

}

})(window.lab3 = window.lab3 || {} , jQuery)

请尝试将TrackballControls.js放在Three.js下面。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么会出现错误“未捕获的TypeError:未定义不是函数”? - Why is there an error, “Uncaught TypeError: undefined is not a function”? 错误:未捕获的类型错误:未定义不是函数 - Error: Uncaught TypeError: undefined is not a function 函数错误:未捕获TypeError:未定义不是函数 - Function error: Uncaught TypeError: undefined is not a function 错误消息“Uncaught TypeError: undefined is not a function”(数据表) - Error message "Uncaught TypeError: undefined is not a function" (DataTable) Firebase上的“未捕获的TypeError:未定义不是函数”错误 - “Uncaught TypeError: undefined is not a function” error on firebase browserify错误“未捕获的TypeError:未定义不是函数” - browserify error 'Uncaught TypeError: undefined is not a function ' Boostrap Popover错误:未捕获TypeError:undefined不是函数 - Boostrap Popover error: Uncaught TypeError: undefined is not a function 经典的jQuery错误-Uncaught TypeError:undefined不是一个函数 - A classical jQuery error - Uncaught TypeError: undefined is not a function Javascript错误:未捕获的TypeError:未定义不是函数 - Javascript Error: Uncaught TypeError: undefined is not a function dataTable引发错误未捕获的TypeError:未定义不是函数 - dataTable raise error Uncaught TypeError: undefined is not a function
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM