javascript - Three.js 不上传加载本地FBX文件

标签 javascript html three.js

我无法加载用户在 HTML 输入中选择的文件,因为我猜加载器需要一个 URL linux 样式的 URL。我已经尝试将一个 blob 作为 URL 对象提供给它,将原始数据提供给 FBX 加载器,最近在我的系统上提供给它的 mozilla 路径,但没有任何效果。如果不将文件实际上传到站点并传递实际 URL,如何实现这一点?

这是我最近的尝试:

    $(document).ready(function() {
        
        $('#file').change(function () {
                
            if ( this.value == '' ) {
                console.log( "No valid file selected." );
            }

            var filePath = this.files[0].mozFullPath,
                loader = new THREE.FBXLoader();
                    
            loader.load( filePath, function( object ) {

                object.traverse( function( c ) {

                    if ( c instanceof THREE.Camera ) {              

                        // Debug log
                        console.log( c );

                    }

                } );

            });
            
        });
        
    });

最佳答案

尝试结合使用文件输入 HTML 元素和 FileReader API。像这样的东西:

const fileInput = document.querySelector("#file-input");

fileInput.addEventListener("change", function(event) {

  const reader = new FileReader();

  reader.addEventListener("load", function(event) {

    const contents = event.target.result;

    const loader = new FBXLoader();
    const object = loader.parse(contents);
    scene.add(object);
    
  });

  reader.readAsArrayBuffer(this.files[0]);

});

关于javascript - Three.js 不上传加载本地FBX文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71899661/

相关文章:

javascript - 同时使用 TEL 和 EMAILTO

javascript - 如何在 JavaScript/jQuery 中跳过 setTimeout

AlertController 内的 Html 文件?

javascript - 三个js PERFORMANCE如何让使用图像纹理更快

javascript - three.js:使用 textureloader 加载 svg 从 r78 开始不起作用

javascript - 三.js加载顺序

javascript - Spring session 超时重定向到登录

javascript - 如何使用 Angular 下拉列表中的选定值填充数组?

html - 主页在 firefox 14.0.1 中无法正确显示

javascript - 获取输入值并重定向