将二进制资产文件加载到 Chrome App
Load a binary asset file into Chrome App
我正在尝试制作一个 Chrome 应用程序,其中包含一些动画对象。
我可以通过以下方式加载纹理:new Image()
然后将图像的 src 属性 设置为我应用程序根目录中的文件名。 (这将加载纹理)
是否可以对包含我的专有动画数据的二进制文件执行类似的操作?我看了又看,但我似乎没有找到任何让我加载未被用户选择或未被用户拖放的二进制文件的东西。
如果这是不允许的事情,(大概是出于安全问题)有人有任何巧妙的解决方法吗?
对于应用程序包中的文件,只需使用 XHR 加载文件即可。
使用完全合格的URL保险起见,用chrome.runtime.getURL(pathRelativeToRoot)
获得
这对我有用:
function reqError() {
console.log("Got an error");
}
function reqListener() {
var buffer = this.response;
console.log("Load complete! Length = ", buffer.byteLength);
}
function LoadBinaryFile(fileName) {
var path = chrome.runtime.getURL(fileName);
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.onerror = reqError;
oReq.open("GET", path, true);
oReq.responseType = "arraybuffer";
oReq.send();
}
我正在尝试制作一个 Chrome 应用程序,其中包含一些动画对象。
我可以通过以下方式加载纹理:new Image()
然后将图像的 src 属性 设置为我应用程序根目录中的文件名。 (这将加载纹理)
是否可以对包含我的专有动画数据的二进制文件执行类似的操作?我看了又看,但我似乎没有找到任何让我加载未被用户选择或未被用户拖放的二进制文件的东西。
如果这是不允许的事情,(大概是出于安全问题)有人有任何巧妙的解决方法吗?
对于应用程序包中的文件,只需使用 XHR 加载文件即可。
使用完全合格的URL保险起见,用chrome.runtime.getURL(pathRelativeToRoot)
这对我有用:
function reqError() {
console.log("Got an error");
}
function reqListener() {
var buffer = this.response;
console.log("Load complete! Length = ", buffer.byteLength);
}
function LoadBinaryFile(fileName) {
var path = chrome.runtime.getURL(fileName);
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.onerror = reqError;
oReq.open("GET", path, true);
oReq.responseType = "arraybuffer";
oReq.send();
}