PDA

Просмотр полной версии : Как разрабатывать очень большие проекты на As3?


CEBEP
20.08.2012, 17:31
Со временем назрел такой вопрос:
Работаю очень давно с FlashDevelop/Idea 11. Всё бы ничего, но стала возникать проблема при работе с большими проектами, которые состоят из различных компонентов, особо друг с другом не связанных.

Проекты в основном игровые и/или на схожую тематику. Скажем ситуация при разработке нард:
Есть игровое "лобби", сама игра, система оповещений а-ка попапы, окно игровых настроек, панель с инфо. о юзере.
Каждую часть можно рассматривать как отдельный компонент, который должен входить в конечный swf файл, однако все эти компоненты имеют одни и те же классы, как скажем общие Event-ы, TextBox, ScrollBars, Buttons и т.д. и всё это пихать в swc и компилить при каждом изменении, мне показалось так себе идеей.

В данный момент всё делаю в одном проекте в Idea, создав несколько "Build Configurations", вроде как и работает, но кол-во кода в проекте такое, что глазам смотреть на всё это дело больно.
В Idea есть (мной до конца не понятая) функция Module, которая создаёт "подпространство" в проекте, но не видит классы родительского проекта, не подхватывает все глобальные swc. Просто компилить в конечную директорию, где и родительский swf файл.
Была идея разделить на мелкие отдельные проекты и собирать swf-ы в конечный родительский swf, но куча минусов на лицо: лишний размер общих классов в каждом отдельном swf-е, общие классы накладывают друг на друга, что чревато bug-ами, надо дёргать классы через getDefinitionByName/getQualifiedClassName, так же никакого хинтинга в IDE...

Я понимаю, что много воды в описании, но надеюсь в целом моя проблема будет понятно. Так вот народ, как делать правильно?

alatar
20.08.2012, 18:50
В чем состоит вопрос? В ответ на заголовок надо писать статью или отмазываться ответом "также как и в других ЯП".
По поводу swc, то FlashBuilder, например самостоятельно компилирует swc при изменении проекта и перекомпилирует все проекты, в пределах workspace, которые ее импортировали.
Модуль это вещь в себе, он не должен ничего знать о родительском проекте. В большинстве реализация модуль подгружается как отдельная swf и уже приложение либо общается с модулем через интерфейс или предоставляет через этот интерфейс необходимые ему ресурсы. Но я не знаю, что под этим подразумевают в IDEA.
Каждую часть можно рассматривать как отдельный компонент, который должен входить в конечный swf файл
Можете сделать из в виде плагинов.