Asdoc выбрасывает ошибки для компонента MXML, который включает отдельный файл.as
У меня есть компонент MXML, который включает в себя файл .as с
<fx:Script source="myfile.as" />
Запуск asdoc приводит к множеству ошибок, таких как
"Error: The private attribute may be used only on class property definitions."
"Error: The public attribute can only be used inside a package."
Единственная полезная информация, которую я смог найти по этому вопросу, была в этой статье: http://danielmclaren.net/2009/08/28/using-asdoc-with-mxml-files-and-included-scripts.
Проблема описана там с двумя возможными решениями:
- Решение 1 - переместить код AS в файл MXML. В некотором роде это побеждает цель использования внешних файлов.as для компонентов MXML, так что это действительно последний вариант. Код внутри файла mxml является грязным (я действительно не хочу, чтобы логика смешивалась с mxml), и также потребовал бы использования синтаксиса asdoc.
- Решение 2 состоит в том, чтобы компонент MXML наследовал от обычного файла класса. Это будет означать отсутствие закрытых членов в базовом классе, только внутренний (что означает отдельный пакет для безопасного компонента) или защищенный. Это сделало бы вещи утомительными, если не сказать больше.
Существуют ли другие обходные пути или, возможно, бета / ночная версия asdoc, которая устраняет проблему? Я использую Flex 4.1.0.16076 SDK, "последний выпуск качественной продукции".
Обновить
Только что попробовал использовать asdoc из ствола svn (4.5.0 rev. 16942), и проблема сохраняется.
1 ответ
Честно говоря, я привык к решению 1 и никогда не оглядывался назад. Я полагаю, что я уже смешиваю AS и MXML, так в чем же вред? Кроме того, вы получаете дополнительное преимущество, заключающееся в том, что вы можете использовать мост подсветки элементов как AS, так и MXML. Например, нажмите на текст свойства id вашего HBox, и в вашем окне кода появятся маркеры, показывающие, где на странице ссылается этот член. Это хорошая функция, которая, на мой взгляд, стоит отказаться от всякой суеты по поводу отделения AS от MXML.