2014-01-20 4 views
1

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

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

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

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

+1

Imho, Starling стоит любого рефакторинга! .. – Cherniv

+0

Если у вас есть весь написанный проект, это в основном означает, что вам нужно переписать все, чтобы соответствовать требованиям Старлинг. Это не всегда возможно. –

+2

, если вы решите изменить для скворца, вам не просто придется изменить импортированный класс, но и некоторый код. И вам нужно будет изменить управление своими активами, поскольку Starling поддерживает только изображения и без векторных клипов. Если некоторые из ваших библиотек используют список отображения флэш-памяти, вам также придется их изменить. Старлинг очень хорош, но изменение для него в конце проекта может быть не очень хорошим. Лучше использовать его с самого начала проекта. –

ответ

4

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

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

Продолжайте, окунитесь, вы не пожалеете об этом.

2

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

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

Смежные вопросы