首页 > 解决方案 > createjs loadManifest,它应该在清单中加载文件,对吗?

问题描述

如果我正确理解文档... </p>

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"
        }
]}

我可以在文件加载事件中访问清单数组,我可以从那里手动加载图像,但这似乎违反了使用 PreloadJS 的全部意义。似乎在页面加载时,Preload 应该加载清单,识别“类型”......循环文件,在网络检查器中我应该看到图像的网络请求。

标签: createjs

解决方案


您的清单中的类型不正确。您正在传递一个字符串值“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"
        }
]}

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


推荐阅读