createjs loadManifest,应该是加载manifest中的文件吧?

createjs loadManifest, it should be loading files in manifest, correct?

如果我对文档的理解正确...

window.queue = new createjs.LoadQueue(true, null, true);
queue.loadManifest({src: manifest, type: "manifest"}, true);

应该加载位于 json 文件中的文件,对吗?在检查器中看不到任何请求,只在控制台中获取结果数组。我是否必须遍历结果数组并手动执行 loadFile?

JSON 在 {src:"",id:"",type:"createjs.Types.IMAGE"} 结构中正确格式化。

感谢任何帮助。

添加更多代码:

传入清单的函数url

function loadImages(manifest) {
    window.queue = new createjs.LoadQueue(true, null, true);

    queue.loadManifest({src: manifest, type: "manifest"}, true);

    queue.on("fileload", this.handleFileLoaded);

    queue.on("progress", function(event) {
        console.log("progress " + event.progress);
    });

    queue.on("fileprogress", function(event) {
        console.log("file progress " + event.progress);
    });

    queue.on("error", function(event) {
        console.log("file error");
    });

    queue.on("complete", function(event) {
        console.log("queue complete");
        console.log(event);
    });

    queue.load();

    return queue;
}

handleFileLoaded 事件此时只是将事件转储到控制台。

带有两个示例的清单

{
    "path":"https://images.unsplash.com/",
    "type":"manifest",
    "manifest": [
        {
            "src":"photo-1542838454-d4dce2a7cfde?fit=crop&w=500&q=60",
            "id":"stair_boy",
            "type":"createjs.Types.IMAGE"
        },
        {
            "src":"photo-1549948558-1c6406684186?fit=crop&w=500&q=60",
            "id":"night_bridge",
            "type":"createjs.Types.IMAGE"
        }
]}

我可以在 fileload 事件中访问清单数组,我可以从那里手动加载图像,但这似乎与使用 PreloadJS 的整个要点有悖常理。似乎在页面加载时,Preload 应该加载清单,识别 'type'…循环遍历文件,在网络检查器中我应该看到对图像的网络请求。

来自docs

loadManifest 调用支持四种类型的清单:

  1. 一个字符串路径,它指向一个清单文件,它是一个JSON文件,其中包含一个"manifest" 属性,它定义了要加载的文件列表,并且可以可选地包含一个 "path" 属性,它将被添加到列表中的每个文件之前。
  2. 定义 "src" 的对象,它是 JSON 或 JSONP 文件。可以为 JSONP 文件定义一个 "callback"。 JSON/JSONP 文件应该包含一个 "manifest" 属性,它定义了要加载的文件列表,并且可以选择包含一个 "path" 属性,它将被添加到前面到列表中的每个文件。
  3. 一个包含 "manifest" 属性 的对象,它定义了要加载的文件列表,并且可以选择包含一个 "path" 属性,它将被添加到前面到列表中的每个文件。
  4. 要加载的文件数组。

您的示例使用第一种方法。如果有问题,请随时 post 更多代码。

您总是可以在队列中抛出更多事件以查看发生了什么,例如 "fileststart"、"fileload" 和 "error"。当第一个清单开始加载时,您应该至少获得一个事件。

干杯。

您清单中的类型不正确。您正在传递 "createjs.Types.IMAGE" 的字符串值。这不等于 "image",也不等同于 JavaScript createjs.Types.IMAGE,因为它被解释为字符串。

改为使用字符串值 "image"

{
    "path":"https://images.unsplash.com/",
    "type":"manifest",
    "manifest": [
        {
            "src":"photo-1542838454-d4dce2a7cfde?fit=crop&w=500&q=60",
            "id":"stair_boy",
            "type":"image"
        },
        {
            "src":"photo-1549948558-1c6406684186?fit=crop&w=500&q=60",
            "id":"night_bridge",
            "type":"image"
        }
]}

编辑:仅当没有可识别的图像扩展名时才需要类型 属性,例如这种情况。