javascript - 三个 js - JSON 加载器在示例中有效,但在我的代码中无效?
问题描述
我只是想在一个模型中加载从搅拌机到三个 js 的动画。所以我试图复制http://stemkoski.github.io/Three.js/Model-Animation.html
我下载了他的代码,他使用:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/android-animations.js", addModelToScene );
// addModelToScene function is called back after model has loaded
var ambientLight = new THREE.AmbientLight(0x111111);
scene.add(ambientLight);
}
function addModelToScene( geometry, materials )
{
// for preparing animation
for (var i = 0; i < materials.length; i++)
materials[i].morphTargets = true;
var material = new THREE.MeshFaceMaterial( materials );
android = new THREE.Mesh( geometry, material );
android.scale.set(10,10,10);
scene.add( android );
}
授予我在节点 JS 中工作,但是JSONLoader has been removed
当我这样做时出现错误:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "./src/scripts/elements/android-animations.js", this.addModelJson);
我试过 FBXLoader,ObjectLoader,一切。我可以加载模型,但不能加载带有动画的模型。这是唯一的解决方案吗?
如果 JSONLoader 不再存在,我如何从搅拌机加载带有动画的模型?
更新:
this
当我像这样使用 LegacyJSONLoader 时未定义:
var jsonLoader = new THREE.LegacyJSONLoader();
jsonLoader.load( "./src/scripts/elements/android-animations.js", this.addModelJson);
addModelJson( geometry, materials, scene )
{
// for preparing animation
for (var i = 0; i < materials.length; i++)
materials[i].morphTargets = true;
var material = new THREE.MeshFaceMaterial( materials );
var android = new THREE.Mesh( geometry, material );
android.scale.set(10,10,10);
this.scene.add( android );
}
解决方案
这个加载器仍然可以作为LegacyJSONLoader
. 如果您在项目中包含该文件,您应该能够LegacyJSONLoader
像以前一样创建并加载 JSON 模型的实例。
这是链接
推荐阅读
- django - Django,从 Excel 创建具有复制和粘贴功能的表单
- python - 无法缩放拆分的值列表
- c++ - 在父指针向量中调用子函数
- ios - Xcode - macCatalyst 应用程序只能在仅构建活动架构设置为 true 时存档和导出
- android - pjsip TLS 与 android BKS 文件
- r-markdown - 用于创建新帖子的 Rmarkdown 插件不起作用
- arrays - 如何使用scala计算方差和均值
- python - Python 'ascii' 编解码器无法对位置 151 中的字符 u'\u2013' 进行编码:序数不在范围内(128)AWS Glue
- r - 创建一个基本的 R 骰子滚动函数来对骰子值求和
- java - rsps在哪里可以找到背景图片