将二进制资产文件加载到Chrome应用程序中

时间:2015-05-14 21:14:01

标签: javascript google-chrome-app

我正在尝试制作一款Chrome应用,其中会包含一些动画对象。

我可以使用:new Image()加载纹理,然后将图像的src属性设置为应用根目录中文件的名称。 (这将加载纹理)

是否可以对包含我的专有动画数据的二进制文件执行类似的操作?我看了看,但我似乎找不到任何能让我加载用户未选择或用户拖放的二进制文件的东西。

如果这是不允许的,(大概是出于安全问题),任何人都有任何聪明的解决方法吗?

2 个答案:

答案 0 :(得分:2)

对于应用程序包中的文件,它应该像使用XHR加载文件一样简单。

使用完全限定的网址是安全的,使用chrome.runtime.getURL(pathRelativeToRoot)

获取

答案 1 :(得分:1)

这对我有用:

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();
}