首页 > 解决方案 > renderer.isWebGLAvailable 不是 filename.html 中的函数

问题描述

所以我想到目前为止我可以解决我的链接问题,但现在我仍然有一个未捕获的 TypError: rendere.isWEBglAvailable is not a function at filname.html 那么我必须实现什么才能让它工作呢?

 <title>3D Montageanalysetool</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="shortcut icon" href="#" />
        <link href="index.css" rel="stylesheet" type="text/css"/>

        <script src="Libraries/three.min.js" type="text/javascript"></script>
        <script src="Libraries/OrbitControls.js" type="text/javascript"></script>
        <script src="Libraries/OBJLoader.js" type="text/javascript"></script>
        <script src="Libraries/MTLLoader.js" type="text/javascript"></script>

        <!-- ZURBFundation links-->
        <link href="ZURBFundation/css/foundation.css" rel="stylesheet" type="text/css"/>
        <script src="ZURBFundation/js/vendor/jquery.js" type="text/javascript"></script>





     <script>
                //Detctor shows a warning if the current browser do not support WebGL.
                var renderer = new THREE.WebGLRenderer();
                if (renderer.isWebGLAvailable()===true) {
                    // Initiate function or other initializations here
                    animate();
                } else {
                    var warning = renderer.getWebGLErrorMessage();
                    document.getElementById('container').appendChild(warning);
                }

</script>

标签: javascriptnetbeansthree.jswebgl

解决方案


你必须按照你的<script>标签的顺序,看看他们每个人在做什么。

  • 首先你有<script src="index.js" type="text/javascript"></script>,但我们不知道那个文件在做什么。这个文件是否期望已经加载了three.js?如果是这样,您需要将其向下移动,以便在三个可用index.js加载。
  • 其次,您尝试从中导入 Three.js 库,threejs-viewer-master/lib/threejs/three.js但您是否检查过它的地址是否正确?您的控制台或网络选项卡是否显示正在加载此资产?
  • 第三,您正在加载一个重复的three.js 库,https://cdnjs.cloudflare.com/ajax/libs/three.js/r79/three.min.js这可能会污染您的库代码并使其无法使用。您还应该加载更新的版本,/r100/而不是/r79/此时。

这不是 Three.js 问题,而是脚本顺序问题,可能会链接到不存在的文件。


推荐阅读