使用 iewebgl 运行三个.js示例时出现异常
Exception when running three.js example using iewebgl
我正在尝试使用 iewebgl,但在运行 three.js webgl_loader_obj 中的一个例子时遇到问题。 我收到以下错误:
SCRIPT445: Object doesn't support this action
iewebgl.html, line 134 character 5
指向此行
// texture
var manager = new THREE.LoadingManager(); <!-- here -->
manager.onProgress = function ( item, loaded, total ) {
console.log( item, loaded, total );
};
我还尝试注释掉纹理和模型部分并在没有管理器的情况下加载对象,但会收到以下错误:
SCRIPT445: Object doesn't support this action
OBJLoader.js, line 19 character 3
指向此行
THREE.OBJLoader.prototype = {
constructor: THREE.OBJLoader,
load: function ( url, onLoad, onProgress, onError ) {
var scope = this;
var loader = new THREE.XHRLoader( scope.manager ); <!-- here-->
loader.setCrossOrigin( this.crossOrigin );
我尝试了创建画布和从JavaScript获取WebGL上下文,并使用助手创建WebGL上下文。
我正在使用 ie10 和 r.46 的三个.js。当我使用三个中的 r.61 时.js我得到以下异常
SCRIPT5007: Unable to get property 'getExtension' of undefined or null reference
three.min.js, line 8322 character 2
这是
} catch (Zb) {
console.error(Zb)
}
Na = j.getExtension("OES_texture_float"); <!-- here -->
j.getExtension("OES_texture_float_linear");
va = j.getExtension("OES_standard_derivatives");
知道是什么原因造成的吗?
我能够使用创建画布并从JavaScript示例中获取WebGL上下文来解决我的问题
<div id="container">
<script id="WebGLCanvasCreationScript" type="text/javascript">WebGLHelper.CreateGLCanvasInline('renderCanvas', onLoad)</script>
</div>
然后,我将 init()
和 animate()
调用都放在以下块中,省略了全局变量 VaR 容器,统计;
var camera, cameraTarget, scene, renderer;
function onLoad() {
<!-- require(["js/Three.js"], function () { -->
init();
animate();
<!-- }); -->
}
我没有使用require
代码,但包括它,以防其他人遇到类似的问题并发现他们需要它。
最后,不得不将渲染代码更改为以下内容。(我留下了原评论)
var externalCanvas = document.getElementById('renderCanvas');
renderer = new THREE.WebGLRenderer({ 'canvas': externalCanvas, 'clearColor': 0xffffff });
<!-- renderer = new THREE.WebGLRenderer(); -->
<!-- renderer = new THREE.WebGLRenderer( { antialias: true, alpha: false } ); -->
如果你使用三.js的未缩小版本,我想你会看到问题是_gl对象(缩小版本中的j)为空。在我看来,好像三个.js会抛出异常,记录消息"创建 WebGL 上下文时出错",然后继续尝试使用 _gl 对象。:)
您是否在主机中看到该消息?这是我认为您的错误发生的未缩小的来源。
function initGL() {
try {
var attributes = {
alpha: _alpha,
premultipliedAlpha: _premultipliedAlpha,
antialias: _antialias,
stencil: _stencil,
preserveDrawingBuffer: _preserveDrawingBuffer
};
_gl = _canvas.getContext( 'webgl', attributes ) || _canvas.getContext( 'experimental-webgl', attributes );
if ( _gl === null ) {
throw 'Error creating WebGL context.';
}
} catch ( error ) {
console.error( error );
}
_glExtensionTextureFloat = _gl.getExtension( 'OES_texture_float' );
_glExtensionTextureFloatLinear = _gl.getExtension( 'OES_texture_float_linear' );
_glExtensionStandardDerivatives = _gl.getExtension( 'OES_standard_derivatives' );
您的IE是否支持WebGL?其他 webgl 测试有效吗?我没有IE Win8.1预览版,但我很想知道三个.js是否适用于它。
- node.js和express中的异常处理
- JS异常:animate不是一个函数
- 在js中捕获自定义异常
- 当我在同一页上有两个图D3.js时,宽度异常
- 节点.js未捕获的异常类型错误:无法设置未定义的预处理 ''
- 使用datetimepicker敲除js绑定会出现异常
- 抛出异常:Node.js与Gevent
- 处理 Node.js 和 Express 中的 404、500 和异常
- 在 JS 中捕获异常
- 有没有办法在node.js中的异常或测试失败时启动调试器
- 在属性名称中搜索带有冒号的 xpath 表达式会引发异常(节点.js元素树模块)
- THREE.js 使用 sceneLoader 加载由 THREE.js 编辑器创建的场景时出现异常
- 从 C# 执行 JS 代码的异常:预期函数
- 主干.js - n捕获异常:语法错误:函数构造函数:无法编译函数
- JavaScriptCore:尝试将JS函数作为块传递给Objective-C,得到“TypeError”异常
- 使用 Express 4 在 Node.js 中全局处理异常的最佳方法
- d3.js:异常错误
- 发生未捕获的异常时重新启动 Node.js 应用程序
- 使用 iewebgl 运行三个.js示例时出现异常
- 未捕获的异常:每个数据元素都必须实现一个唯一的“id”属性slick.dataview.js