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
调用支持四种类型的清单:
- 一个字符串路径,它指向一个清单文件,它是一个JSON文件,其中包含一个"manifest" 属性,它定义了要加载的文件列表,并且可以可选地包含一个 "path" 属性,它将被添加到列表中的每个文件之前。
- 定义 "src" 的对象,它是 JSON 或 JSONP 文件。可以为 JSONP 文件定义一个 "callback"。 JSON/JSONP 文件应该包含一个 "manifest" 属性,它定义了要加载的文件列表,并且可以选择包含一个 "path" 属性,它将被添加到前面到列表中的每个文件。
- 一个包含 "manifest" 属性 的对象,它定义了要加载的文件列表,并且可以选择包含一个 "path" 属性,它将被添加到前面到列表中的每个文件。
- 要加载的文件数组。
您的示例使用第一种方法。如果有问题,请随时 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"
}
]}
编辑:仅当没有可识别的图像扩展名时才需要类型 属性,例如这种情况。
如果我对文档的理解正确...
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
调用支持四种类型的清单:
- 一个字符串路径,它指向一个清单文件,它是一个JSON文件,其中包含一个"manifest" 属性,它定义了要加载的文件列表,并且可以可选地包含一个 "path" 属性,它将被添加到列表中的每个文件之前。
- 定义 "src" 的对象,它是 JSON 或 JSONP 文件。可以为 JSONP 文件定义一个 "callback"。 JSON/JSONP 文件应该包含一个 "manifest" 属性,它定义了要加载的文件列表,并且可以选择包含一个 "path" 属性,它将被添加到前面到列表中的每个文件。
- 一个包含 "manifest" 属性 的对象,它定义了要加载的文件列表,并且可以选择包含一个 "path" 属性,它将被添加到前面到列表中的每个文件。
- 要加载的文件数组。
您的示例使用第一种方法。如果有问题,请随时 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"
}
]}
编辑:仅当没有可识别的图像扩展名时才需要类型 属性,例如这种情况。