2011-01-26 2 views
4

Учитывая, мы уже сделали следующие действия:Как уменьшить размер файлов SWF, оптимизируя код?

  • Flex Framework как RSL
  • Компиляции с отладочным = ложными
  • Загрузка большинство изображений во время выполнения
  • чертежа других простых изображений с флэш-дро особенности
  • Сокращение сложных изображений с помощью pngquant
  • Создание модулей для дополнительных функций
  • Применения диапазонов шрифтов
  • Идущих FlexPMD найти мертвый код и плохие копировать-вставить
  • Запуск FlashOptimizer и secureSWF (с плохими результатами)

Сегодня наше приложение 1358k:

  • код : 978k - 72%
  • изображения: 270k - 20%
  • шрифты: 110k - 8%

Мы считаем, что мы потратили много времени на оптимизацию активов, и большая часть работы остается на коде. Анализируя наш отчет о ссылках, мы предполагаем, что большая часть кода связана с вложенными компонентами Flex .mxml. Мы не думаем, что на наших чистых AS-классах многое можно сделать.

Есть ли какой-либо анализ или кодирование наилучшей практики, чтобы уменьшить влияние кода на файл swf?

Спасибо.

Вот приложение: http://www.pearltrees.com/nicolas/137698/

+0

Вы экспортировали сборку выпуска или сравниваете сборку отладки? – JeffryHouser

+0

Конечно, выпуск build – Cyno

ответ

2

У вас есть объекты в .mxml, которые похожи друг на друга, что вы могли бы превратиться в общий класс и настроить программно?

+0

У нас есть много настраиваемых компонентов, которые наследуются от основных компонентов Flex (Canvas, Box, Image, List и т. Д.). Я не уверен, что это принесет пользу окончательному размеру кода. Когда вы вставляете Button или CustomizedButton (inhereting Button) в .mxml, изменяется ли окончательный размер кода? Вот почему я спрашивал о глубоком анализе и лучшей практике. – Cyno

1

Рассмотрите возможность использования в предварительных загрузчиках и модулях.

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

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

Недостаток: ваш код предварительного разгрузки не имеет доступа ко всем свойствам Flex. Вам нужно будет нарисовать свой интерфейс и реализовать свое взаимодействие в простой старой AS3. Тем не менее, дополнительная работа может стоить того и в некоторых ситуациях.

Flex-модули - это еще одна вещь, на которую стоит обратить внимание. В сложном приложении Flex не все обычно используется.Если вы вырезаете менее используемые биты из основного приложения и переместите их в module you load on-demand, вы сможете сэкономить достаточное количество байтов от первоначального размера загрузки.

+0

У нас есть предварительный загрузчик в простой AS3, который обрабатывает основные задачи (тесты среды, безопасность, загрузка основного приложения monitore). К сожалению, большинство пользователей переходят непосредственно в основное приложение, где используется большая часть кода. Как я уже упоминал в вопросе, мы уже создали модули для вторичных функций. – Cyno

+0

Я обновил вопрос, чтобы добавить ссылку, показывающую, как люди обращаются к приложению. – Cyno

3

В моей практике у меня обычно нет больших окончательных swf-файлов, поэтому я хочу упомянуть только одно. Использование mxmlc напрямую мы не должны забывать, чтобы добавить (для окончательной сборки, конечно), параметр/атрибут

отлаживать = «ложь»

другим способом окончательные швейцарские франки будут почти в 2 раза больше ,

+0

Скомпилируем с debug = false, я обновил вопрос, чтобы упомянуть об этом. – Cyno

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

  • Нет связанных вопросов^_^