请问在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”目录下的东西吗?
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天后自动关闭。不再允许新的回复。
