请问怎么打开打开PC本机本地文件浏览windows界面?

请问在creator里点击一个按钮打开PC的本地文件夹浏览,怎么实现?
主要是打开PC本机本地文件浏览windows界面,用什么代码打开?
知道的大佬麻烦指点一下,先谢谢啦。

仅限浏览器

let input = document.createElement('input');
input.type = 'file';
input.onchange = (e) => {
    let files = e.target.files;
    if (files.length == 0) {
        return;
    }
    let fileReader = new FileReader();
    fileReader.onload = (e) => {
        //获得数据
        let data = e.target.result;
    }
    fileReader.readAsText(files[0]);
}
input.click();

谢谢大佬指点,果然打开了,然后我想继续选择一张图片,在游戏中显示,结果自己调了半天还是没成功,还望大佬再指点一二,在此先谢过了

let input = document.createElement('input');
input.type = 'file';
input.onchange = (e) => {
    let files = e.target.files;
    if (files.length == 0) {
        return;
    }
    let fileReader = new FileReader();
    fileReader.onload = (e) => {
        let dataURL = e.target.result;
        var img = new Image();
        img.src = dataURL;
        //创建材质
        let texture = new cc.Texture2D();
        texture.initWithElement(img);
        //测试显示图片
        let node = new cc.Node();
        let sp = node.addComponent(cc.Sprite);
        sp.spriteFrame = new cc.SpriteFrame(texture);
        node.parent = cc.Canvas.instance.node;
    }
    fileReader.readAsDataURL(files[0]);
}
input.click();

或者用cc.loader或cc.assetManager加载dataURL也行.

2赞

现在是选择完图片,直接报错“assets\Script\Helloworld.ts:276 Uncaught TypeError: Failed to execute ‘readAsDataURL’ on ‘FileReader’: parameter 1 is not of type ‘Blob’.”
不是Blob类型,需要怎么处理?我选择的是一张JPG的图片。

还有大佬你提到的这两种方式要怎么操作,不是只能加载“resources”目录下的东西吗?

参数是files[0], 不是fileReader[0]

dataURL可以直接当url链接传给load函数啊

let input = document.createElement('input');
input.type = 'file';
input.onchange = (e) => {
    let files = e.target.files;
    if (files.length == 0) {
        return;
    }
    let fileReader = new FileReader();
    fileReader.onload = (e) => {
        //获得数据
        let dataURL = e.target.result;
        cc.assetManager.loadRemote(dataURL, {ext: '.png'}, (error, asset) => {
            let node = new cc.Node();
            let sp = node.addComponent(cc.Sprite);
            sp.spriteFrame = new cc.SpriteFrame(asset);
            node.parent = cc.Canvas.instance.node;
        });
    }
    fileReader.readAsDataURL(files[0]);
}
input.click();

谢谢您的回复,此帖已珍藏~真心感谢~

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。