Haxe CreateJS加载外部清单内容失败

时间:2016-09-28 19:39:32

标签: haxe createjs preloadjs

我正在尝试使用Haxe和CreateJS(外部)构建应用程序。 我遇到了加载清单的问题。

以下是代码:

function loadAssets():void
{
    var _manifest:String = "assets/manifests/mymanifest.json";
    _queue = new LoadQueue(true);
    _queue.on("complete", onQueueComplete);
    _queue.on("error", onQueueError);
    _queue.loadManifest([_manifest]);
}

mymanifest.json的内容:

{
  "path" : "assets/images/main_menu/",
  "manifest" : 
  [
    {"id" : "mm_background", "src" : "background.jpg", "type":"Image"},
    {"id" : "mm_adv_off", "src" : "advanSelectOff.jpg", "type":"Image"},
    {"id" : "mm_adv_on", "src" : "advanSelectOver.jpg", "type":"Image"},
    {"id" : "mm_tech_off", "src" : "techSelectOff.jpg", "type":"Image"},
    {"id" : "mm_tech_on", "src" : "techSelectOver.jpg", "type":"Image"},
    {"id" : "mm_app_off", "src" : "appSelectOff.jpg", "type":"Image"},
    {"id" : "mm_app_on", "src" : "appSelectOver.jpg", "type":"Image"}
  ]
}

我注意到mymanifest.json被加载了,但没有一个图像被加载。

onQueueError没有触发,因此我认为没有错字或格式错误...

我如何核实:
我在浏览器中查看控制台,并查看网络负载... 控制台显示没有错误跟踪或排序。网络没有显示图像的任何负载......

1 个答案:

答案 0 :(得分:1)

我很确定你的清单只是作为JSON加载,并且没有任何东西可以将它标识为清单。

强制清单类型

由于您将清单添加为具有一个项目的数组,因此它只是将其解释为普通的JSON文件(由于扩展名)。要将其标记为清单,您可以包含一个类型,以向PreloadJS指示JSON文件是清单。

示例:

_queue.loadManifest([
    {src: _manifest, type: "manifest"}
]);

或:直接传递清单文件

将清单作为唯一参数传递,而不是包含清单的Array。如果loadManifest方法收到一个参数,则假定它是:

  1. 一组加载项(这是您的演示正在进行的操作)
  2. 清单对象(基本上是JSON的内容,但是作为JavaScript)
  3. 清单的单个文件路径。
  4. 示例:

    _queue.loadManifest(_manifest); // No square brackets
    

    这应该告诉PreloadJS加载JSON,解析它,检查结果的manifest属性,并加载它。