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

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

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

[Frame(factoryClass = "Preloader")]

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

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

1 ответ

Решение

Видимо, это больше не поддерживается. Здесь был задан похожий вопрос:

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

Похоже, новое решение таково:

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

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

До (при использовании старого [Frame] метод метаданных), вы должны были указать свой класс Main в качестве класса Document (который затем скомпилировал бы и перенаправил основную точку входа в указанный вами класс Preloader).

Теперь вместо ASC2.0 вы установите класс Preloader в качестве класса Document.

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

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

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

Другие вопросы по тегам