gpt4 book ai didi

javascript - 三.js : JSONLoader + loadAjaxJSON

转载 作者:行者123 更新时间:2023-11-28 16:02:34 25 4
gpt4 key购买 nike

当我处理重型模型时,我试图在加载 JSON 时动态显示加载百分比,因此我使用 loadAjaxJSON method 进行了粗略测试。 ...

下面的加载返回加载期间的百分比,但永远不会到达回调函数。

是由于缺少声明、错误的上下文参数还是其他原因?我找不到相关文档。

var loader = new THREE.JSONLoader( true );
loader.loadAjaxJSON(
document, // < context ??
'try.js',
function ( geometry, materials ) { CreateScene( geometry, materials ); },
false, // < texturePath
function( progress, result ) { console.log((progress.loaded / progress.total * 100).toFixed());}
)

控制台:

7 13 20 .. 100
TypeError: a.parse is not a function [three.min.js (ligne 204)]

最佳答案

有时,查看源代码比查找文档更快。这是 JSONLoader 的代码:https://github.com/mrdoob/three.js/blob/master/src/loaders/JSONLoader.js 。正如您所看到的,上下文应该包含两个方法:解析和 onLoadComplete。基本上你只需要发送加载程序作为上下文,查看 loadAjaxJSON 的快捷方式 - 方法加载。关于texturePath,同样在方法load中你可以看到它应该是什么样子:

texturePath = texturePath && ( typeof texturePath === "string" ) ? texturePath : this.extractUrlBase( url );

如果您深入观察,您会发现 extractUrlBase 将返回“./”,因此在您的情况下,您的代码应如下所示:

var loader = new THREE.JSONLoader( true );
loader.loadAjaxJSON(
loader, // context
'try.js',
function ( geometry, materials ) { CreateScene( geometry, materials ); },
'./', // texturePath or loader.extractUrlBase('try.js'),
function( progress, result ) { console.log((progress.loaded / progress.total * 100).toFixed());}
)

关于javascript - 三.js : JSONLoader + loadAjaxJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430716/

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