如果我正确理解了文档……
window.queue = new createjs.LoadQueue(true, null, true);
queue.loadManifest({src: manifest, type: "manifest"}, true);
应该加载位于json文件中的文件,对吗?在检查器中看不到任何请求,仅在控制台中获取结果数组。我必须遍历结果数组并手动执行loadFile吗?
JSON的格式正确{src:“”,id:“”,类型:“ createjs.Types.IMAGE”}结构。
感谢您的帮助。
添加更多代码:
传递清单网址的功能
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的整个思路背道而驰。就像在页面加载中一样,预加载应加载清单,识别“类型”……通过文件循环,并且在网络检查器中,我应该看到图像的Web请求。
答案 0 :(得分:0)
来自docs:
loadManifest
调用支持四种类型的清单:
您的示例使用第一种方法。如果有任何问题,请随时发布更多代码。
您总是可以在队列中抛出更多事件以查看正在发生的情况,例如“ fileststart”,“ fileload”和“ error”。当第一个清单开始加载时,您应该至少遇到一个事件。
干杯。
答案 1 :(得分:0)
清单中的类型不正确。您正在传递字符串值“ createjs.Types.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属性。