作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Three.js 设置一个非常简单的场景,显示一个导入的网格旋转。我结合了 Three.js 文档中的几个示例并得出以下代码:
var scene, camera, renderer;
var geometry, material, mesh;
init();
animate();
function init(){
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 1000;
// geometry = new THREE.BoxGeometry(200, 200, 200);
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load('handgun.js', object_to_scene(geometry, material));
}
function object_to_scene(geometry, material){
material = new THREE.MeshBasicMaterial({
color: 0xff0000,
wireframe: true
});
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
}
function animate(){
requestAnimationFrame(animate);
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
renderer.render(scene, camera);
}
您可以看到上面注释掉的原始示例,其中我们使用 Three.js 生成了一个 Box。效果很好。但是,导入自定义 3D 模型的 JSON 文件不起作用。检查我的控制台显示以下错误:
TypeError: onLoad is not a function three.js:18294:4
THREE.JSONLoader.prototype.load/<() three.js:18294
THREE.XHRLoader.prototype.load/<() three.js:18010
这似乎是 Three.js 本身的错误,但是我发现只有两个人在 Github 帐户上报告它,并且都被告知 Github 是用于报告错误,而不是寻求帮助(如果这不是错误,那它是什么?)。
有没有其他人遇到过这个问题,如果你已经解决了,你是怎么做到的?
谢谢!
最佳答案
代替
jsonLoader.load( 'handgun.js', object_to_scene( geometry, material ) );
你需要这样做:
jsonLoader.load( 'handgun.js', object_to_scene );
object_to_scene( geometry, material )
是一个函数调用,在您的情况下,它返回 undefined
。
three.js r.75
关于javascript - 三.js JSONLoader 'onLoad is not a function',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36159745/
我是一名优秀的程序员,十分优秀!