gpt4 book ai didi

javascript - 三.js JSONLoader 'onLoad is not a function'

转载 作者:行者123 更新时间:2023-11-29 19:14:50 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com