2016-09-28 11 views
3

Я пытаюсь создать приложение, используя Haxe и CreateJS (externs). У меня возникает проблема с проявлением нагрузок.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

Я достаточно уверен, что ваш манифест просто загружается как JSON, и что нет ничего, что идентифицирует его как манифест.

Force манифеста тип

Так как вы добавляете манифест как массив с одним элементом, он просто интерпретирует его как обычный файл JSON (в связи с расширением). Чтобы пометить это как манифест, вы можете включить тип, указывающий PreloadJS, что файл JSON является манифестом.

Пример:

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

ИЛИ: Передать файл манифеста непосредственно

Pass манифест в качестве единственного аргумента, вместо того, чтобы массив, содержащий манифест. Если метод loadManifest принимает один аргумент, он предполагает, что это либо:

  1. Массив элементов нагрузки (что делает ваш демо)
  2. манифеста Object (в основном содержимое вашей JSON, но, как JavaScript)
  3. Путь к одному файлу, который is a manifest.

Пример:

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

Это должно сказать PreloadJS для загрузки JSON, разобрать его, проверить наличие manifest собственности результата, и загрузить его.

+0

Спасибо, Лэнни за вашу помощь. – MikeH

+0

Я согласен с тобой, что я также думаю, что файл загружается только как JSON ... Я попытался сделать первый вариант (_queue. [OadManifest ([{src: _manifest, type: "manifest"}], true); все еще загружается как JSON ... Второй вариант не представляется жизнеспособным, я получаю сообщение об ошибке, указывающее, что loadManifest ищет параметр типа Array MikeH

+0

Вы используете TypeScript или что-то в этом роде? loadManifest всегда принимал больше, чем просто массив, поэтому определения могут быть неправильными. Обратите внимание, что загрузка как «манифестный» тип по-прежнему загружает файл как JSON, но будет искать свойство манифеста после загрузки файла. Как вы определяете, загружается ли только JSON? – Lanny

 Смежные вопросы

  • Нет связанных вопросов^_^