Как оптимизировать модульные приложения Flash (время загрузки и гибкость)? - PullRequest
3 голосов
/ 27 января 2010

Я работаю над большим приложением, которое разбито на множество независимых SWF-файлов. Существует главный SWF, который загружает навигационную оболочку и основную логику, и систему загрузки модулей, которая загружает дочерние SWF в основную область отображения. Все это работает гладко, и теперь я приступаю к созданию модулей, и я начинаю чувствовать, что мои методы не так эффективны, как должны быть.

Модуль swfs (и соответствующая ему вспышка) находится в подкаталоге «modules» в папке src основного проекта. Эти модули имеют большое количество классов. На самом деле, большинство из них не определяют новые классы, специфичные только для этого модуля. Общие классы имеют сложную структуру наследования и использования интерфейса и расположены в подкаталоге view / structure основной папки src.

В настоящее время, чтобы использовать общие классы из представления / структуры в моём модуле swfs, я добавляю папку src основного проекта в исходный путь в каждой из модулей flash. Помимо того, что это немного утомительно делать каждый раз, это 1.) Избыточно компилирует общие классы в каждый модуль, увеличивая размеры файлов по всем направлениям, 2.) Требует добавления новых исходных путей к модулям для каждого разработчика, который хочет работать с протестировать приложение, потому что они являются абсолютными значениями и различаются в файловой системе каждой ОС, и 3.) Не позволяет собирать модули независимо без доступа к основной папке src проекта

Я немного исследовал RSL во флэш-памяти, но я не мог понять, как я смогу вписать их в эту схему.

Есть идеи? Большое спасибо за чтение.

-Dane

1 Ответ

2 голосов
/ 27 января 2010

В этом случае я настоятельно рекомендую использовать разделяемые библиотеки времени выполнения. Я никогда не делал этого непосредственно из Flash IDE, так как всегда компилирую через Flex, однако я полагаю, что это должно быть почти такая же логика из Flash IDE, но вам, возможно, придется немного подправить следующее решение, пока я его пишу изо всех сил, даже не проверив это ...

Включите все основные классы для совместного использования в основной оболочке, ссылаясь на них каким-либо образом в своем коде (компилятор включает классы ленивым способом, и не ссылочные классы не будут включаться и экспортироваться).

Чтобы обеспечить согласованность общих классов, опубликуйте SWC используемых классов (отметьте «Экспортировать SWC» в настройках публикации). Вы всегда можете дважды проверить содержимое SWC, просто разархивировав его.

В загруженных модулях удалите пути классов из «Исходного пути» / «Путь к библиотеке». Вместо этого добавьте только что созданный SWC-файл в список «Путь к внешней библиотеке». Когда вы сейчас экспортируете свои модули, классы, найденные в SWC, не будут включены в SWF.

Примечание. Вероятно, вы можете получить ошибки времени выполнения («определение не найдено ...») при экспорте / запуске модулей из основного SWF-файла. Это имеет смысл, так как определения, которые вы удалили, должны исходить из основного SWF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...