Уменьшение размера файла SWF - PullRequest
7 голосов
/ 20 февраля 2009

У меня есть проект с парой графики и большим количеством ActionScript 3. У кого-нибудь есть советы по уменьшению размера SWF-файла?

Ответы [ 5 ]

4 голосов
/ 20 февраля 2009

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

Если у вас есть динамические или текстовые поля со встроенными шрифтами, будьте осторожны, вы встраиваете только то подмножество символов, которое вам нужно, если вы используете растровые изображения, убедитесь, что вы используете соответствующее сжатие (без потерь на самом деле лучше для «компьютерных»). изображения, много сплошных цветов или простых градиентов).

Что касается уменьшения размера байта ActionScript ... попробуйте сначала очевидные вещи: используйте publish или test вместо debug (Shift-F12 или Ctrl-Enter, а не Ctrl-Shift-Enter), чтобы скомпилировать код выпуска, дважды проверьте, что нет встроенных функций flash, которые вы можете использовать вместо actioncript, использовать функции для совместного использования кода, добавлять локальные переменные для сокращения общих подвыражений.

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

Либо обрежьте, либо скопируйте любые методы, которые вы используете из других библиотек. Если вы используете Flex ... извините, вы довольно обалденные :(. Не упустите ссылки на классы, которые вытягивают целую кучу неиспользуемых классов: здесь также полезно сделать обрезанную копию частной библиотеки.

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

3 голосов
/ 20 февраля 2009

Графика всегда должна быть первой подозреваемой в случаях раздувания файла. Если у вас есть изображения, уменьшите качество или размер или посмотрите, дает ли другой формат файлы меньшего размера. Не копируйте и не вставляйте векторные рисунки, помещайте их в видеоклипы или рисунки и помещайте их в другие места. Кроме того, если у вас есть какие-либо сложные векторные изображения, сглаживание может помочь уменьшить их сложность.

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

Несколько связанный вопрос: Почему размер моего SWF-файла не уменьшается при уменьшении содержимого?

2 голосов
/ 28 февраля 2009

Общая библиотека времени выполнения

1 голос
/ 20 февраля 2009

Вы можете сделать пару вещей ..

  • сохранять изображения как внешние ссылки и загружать их динамически (есть компромисс)

  • проверьте ОТЧЕТ О РАЗМЕРАХ, отследите и обрежьте большие встроенные файлы

0 голосов
/ 20 февраля 2009

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

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