Распознает ли ASC 2.0 теги метаданных [Frame] (например: для Preloader factoryClass)?

Я пытаюсь использовать новый компилятор ASC2.0 в AIR SDK 3.7, но, похоже, столкнулся с проблемой, когда он не может обнаружить мой класс предварительного загрузчика.

Если я использую компилятор, отличный от ASC2.0, он распознает и компилирует класс Preloader, объявленный в теге метаданных Frame в моем классе Main, например:

[Frame(factoryClass = "Preloader")]

Но как только я скомпилирую его с помощью ASC2.0, он игнорирует метаданные Frame и просто пытается скомпилировать класс Main и предположить, что он ДОЛЖЕН быть подклассом Sprite / MovieClip (что не обязательно должно быть, когда он Предварительно загружен тегом метаданных Frame), поэтому он не компилируется.

Если кто-то может подтвердить это, это было бы здорово, я некоторое время крутил колеса по этому поводу. Спасибо!


person bigp    schedule 20.04.2013    source источник
comment
К сведению других, блуждающих здесь, для руководства по использованию класса предварительного загрузчика в чистом проекте AS3 см. этот отличный туториал   -  person Jeff Ward    schedule 09.12.2014
comment
Стоит отметить, что этот учебник был написан до ASC 2.0, поэтому он может применяться только к стандартному SDK.   -  person bigp    schedule 09.12.2014


Ответы (1)


Судя по всему, больше не поддерживается. Аналогичный вопрос задавался здесь:

метатег ASC2.0 и Frame

Новое решение выглядит следующим образом:

Вы должны вручную добавить аргументы компилятора для данных -frame.

Однако, чтобы это заработало, вы должны настроить свой проект немного иначе, чем метод метаданных [Frame].

Раньше (при использовании старой техники метаданных [Frame]) вам приходилось указывать свой основной класс как класс Document (который затем компилировал и перенаправлял основную точку входа в указанный вами класс Preloader).

Вместо этого теперь с ASC2.0 вы будете устанавливать класс Preloader в качестве класса Document.

Вот несколько вещей, которые вы должны настроить:

  • Ваш класс Preloader должен расширять подкласс Movieclip.
    (Это позволяет вашему основному контенту встраиваться в Frame # 2)
  • Назначьте свой класс «Preloader.as» (или как вы его назвали) в качестве класса Document.
  • Поместите этот дополнительный аргумент компилятора:
    -frame=AnyFrameLabelYouWant,YourMainClass
  • Кроме того, добавьте версию SWF с этим дополнительным аргументом компилятора:
    -swf-version=18 (хотя я думаю, что 17 будет работать и с ASC2.0...)
  • Убедитесь, что вы используете компилятор ASC2.0 SDK в своей IDE!

ПРИМЕЧАНИЕ: Теперь, когда я думаю об этом, возможно, можно вводить /** @mxmlc */ комментарии JavaDoc, чтобы дать инструкции компилятору, но я еще не пробовал. Это может быть обходным путем из-за отсутствия поддержки метаданных в компиляторе ASC2.0. (редактировать: я попробовал это один раз, и эта функция, похоже, работает только с кнопкой «Сборка» на панели инструментов в FlashDevelop, которая компилирует только текущий выделенный файл)

person bigp    schedule 20.04.2013
comment
Большое спасибо за это! - person NoobsArePeople2; 10.04.2015