Распознает ли 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 ответ
Видимо, это больше не поддерживается. Здесь был задан похожий вопрос:
Похоже, новое решение таково:
Вы должны вручную добавить аргументы компилятора для -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, которая компилирует только текущий файл)