Рефакторинг для скворца

Я делаю флеш-приложение для AIR. Приложение в основном сделано, но меня не устраивает скорость рендеринга на мобильных устройствах (режим рендеринга - gpu).

Я знаю, что существует фреймворк Starling, позволяющий удобно работать с Stage3d, но я никогда им не пользовался.
Изучив его и просмотрев несколько руководств, я заметил, что мне нужно переименовать весь пакет. классы flash по умолчанию, например flash.display.DisplayObject -> starling.display.DisplayObject.

Но такое действие может быть разрушительным для моей кодовой базы, к тому же у меня есть другие фреймворки, которые работают с некоторыми классами flash package.

Есть ли способ присоединить Starling к полному проекту без переименования всех имен пакетов, изменения ресурсов и рефакторинга всех фреймворков, которые работают с AIR API по умолчанию?


person Creative Magic    schedule 20.01.2014    source источник
comment
Имхо, Старлинг достоин любого рефакторинга!..   -  person Ivan Chernykh    schedule 20.01.2014
comment
Если у вас написан целый проект, это в основном означает, что вам нужно переписать все, чтобы соответствовать требованиям Старлинга. Это не всегда возможно.   -  person Creative Magic    schedule 20.01.2014
comment
если вы решите перейти на скворца, вам придется изменить не только импортированный класс, но и некоторый код. И вам нужно будет изменить управление активами, поскольку Starling поддерживает только изображения, а не векторные клипы. Если некоторые из ваших библиотек используют список отображения флэш-памяти, вам также придется изменить их. Старлинг очень хорош, но менять его в конце проекта может быть нехорошо. Лучше использовать его с самого начала проекта.   -  person Benjamin BOUFFIER    schedule 20.01.2014
comment
Старлинг имеет открытый исходный код. Вы можете переименовать их классы, хотя это не рекомендуется.   -  person Pranav Hosangadi    schedule 20.01.2014
comment
@Binou, это также означает, что создание большого проекта с учетом Starling сделает кодовую базу непригодной для повторного использования, если есть другая структура, или Starling перестанет выходить.   -  person Creative Magic    schedule 20.01.2014
comment
Единственная причина, по которой я могу придумать, что Starling выйдет из строя, это если Adobe сделает лучший, другой низкоуровневый API для рендеринга; что очень маловероятно.   -  person Marty    schedule 20.01.2014


Ответы (2)


Если вы думаете о переходе на Starling, вам придется переработать весь код рендеринга. Starling — это не простое решение. Простое переименование классов в вашем существующем коде не поможет, потому что это полностью заменяет список отображения флэш-памяти для Direct3D, который выполняет весь рендеринг с помощью графического процессора со всеми его отличиями: растровая графика, атласы текстур, тщательный порядок отрисовки. Кривая обучения может быть немного крутой в начале, но как только вы ознакомитесь с основными понятиями, работать с ними будет очень просто.

ИМХО, это стоит затраченных усилий, особенно на мобильных устройствах. Код, который выполнялся с низкими 10 FPS в классическом списке отображения, можно легко заставить работать со скоростью 60 FPS со Starling. По сути, для flash на мобильных устройствах Stage3D — единственная игра в городе. И Starling — это лучшая поддерживаемая и широко принятая платформа для 2D-материалов на Stage3D с множеством вспомогательных библиотек и очень полезным сообществом разработчиков.

Давай, дерзай, не пожалеешь.

person jpop    schedule 20.01.2014

Вы можете одновременно запускать Starling и собственный уровень приложения Flash, но это не даст вам оптимальных результатов. Если вы хотите в полной мере воспользоваться ускорением графического процессора Stage3d и Starling, было бы предпочтительнее реорганизовать существующий код для использования экранных объектов Starling, а не объектов Flash.

Возможно, вы захотите задать этот вопрос на форуме Starling, это очень полезные ребята, и это процветающее сообщество разработчиков! - http://forum.starling-framework.org

person blitboy    schedule 05.03.2014