Мне надоело часами ждать публикации Flash. Проекты .NET / VisualStudio на WAAAAY быстрее - это только компиляция классов, которые изменились?
Обновление: перекодирует ли Flash IDE все ваши звуки и изображения при каждой публикации? Разве их где-то нельзя кэшировать?





Вы можете попробовать разделить свое приложение на отдельные файлы .swf, а затем загрузить их из основного фильма.
Также, возможно, стоит взглянуть на вашу среду. Возможно, на вашем компьютере заканчивается оперативная память, вы используете сетевой диск или ваш жесткий диск зашифрован.
Также, если приложение становится настолько большим, действительно ли Flash - правильная технология?
Все зависит от вашего проекта. Я знаю некоторых аниматоров, которые используют Flash для публикации широковещательного контента, и публикация этого контента обычно занимает много времени. Для них это невозможно. В противном случае, если публикация SWF-файла, который будет отображаться в Интернете, займет часы, то, вероятно, вы поступите неправильно.
Кроме того, есть несколько очевидных виновников, которые сразу увеличивают время, необходимое для компиляции SWF, - это встроенное видео и встроенный звук. Чем больше элементов IDE должна сжать для вывода (включая изображения), тем больше времени потребуется для компиляции.
Вы не можете сделать кэш Flash IDE встроенным носителем (но изображения не будут перекодированы, если вы импортируете PNG / GIF и установите сжатие без потерь в библиотеке). Но если это веб-проект, вы все равно должны загружать мультимедиа из внешних файлов, поэтому вам не нужно предварительно загружать все данные, прежде чем что-либо появится на экране пользователя. Вы можете загружать (или даже транслировать) медиафайлы напрямую или вставлять их в отдельный SWF-файл и загружать оттуда, но я не рекомендую последний вариант, поскольку он добавляет ненужной сложности.
Когда компиляция идет слишком медленно, я обычно урезаю библиотеку - читаю загружаемые изображения (png, jpg) и звук через URLRequest.
Обычно компилятор действительно тормозит при импорте файлов Illustrator (ai).
Для меня оказалось, что я удалил символьный фильтр в своих текстовых полях. Это кажется безобидным, но на самом деле в него нужно встроить все возможные глифы гидроразрыва, что привело к созданию огромного SWF-файла, компиляция которого заняла целую вечность! Во всяком случае, обязательно проверьте это - я думаю, многие люди могут легко это не заметить.
Если вы даже хотите изменить язык, вы можете использовать Haxe. Он компилируется в SWF и невероятно быстро компилируется. Вероятно, не стоит переходить на другой язык в тот момент, когда у вас есть многочасовое время компиляции, но обратите внимание на это, когда вы начинаете свой следующий большой проект.
В Flash CS4 отключение режима предупреждений ускоряет компиляцию кода примерно на 30% (все еще довольно медленно). Строгий режим тоже, но я не уверен, в какой степени.
Что касается ресурсов библиотеки, то оптимальная скорость достигается за счет установки для JPEG значений «Использовать импортированные данные JPEG», а для PNG / GIF - «PNG / GIF без лишнего звука». Что касается звуков, я не уверен на 100%, но думаю, что ADPCM / моно-в-стерео / 5 кГц / 2 бит был самым быстрым. Тег [Embed] также может помочь (он не выполняет никакого преобразования), но он включает довольно много кода Flex.
И в качестве совета: во Flash CS4 вы можете пакетно выбирать ресурсы в библиотеке и применять настройки, так что вы можете легко установить оптимальные настройки скорости во время разработки, а затем изменить их для развертывания.
Вау, это сэкономит мне столько времени. Я не учел эффект встраивания символов. Боже, это привело к более чем десятикратному ускорению. Не мне просто нужно найти способ задним числом встроить все мои текстовые поля. Тем не менее, много боли сэкономлено там, где она важна, РАЗВИТИЕ!
Просто хотел добавить. Тег [Embed] выполняет реконверсию. Я провел тест, встраивая две версии одного и того же файла PNG в два идентичных флеш-приложения. Одна версия была простым PNG, а другая была сжата с помощью PNG Compressor. Новый PNG был примерно на 30% меньше, но оба SWF-файла были одинакового размера, как если бы я дважды вставлял один и тот же файл.
В очень большом проекте с сотнями файлов отключение предупреждения было разницей между моим приложением, которое скомпилировалось от 30 до 60 секунд, по сравнению с 1 или 2 секундами. Отключите предупреждения.
Компилятор просто работает медленно во Flash IDE. Я могу понять медлительность, если у вас есть много изображений в библиотеке, которые необходимо повторно экспортировать, но компилятор необъяснимо медлителен, когда компилируется только код.
Например, у меня есть супер базовая сцена Away3d, для компиляции которой требуется пять полных секунд (без ресурсов библиотеки). Точно такой же код компилируется во Flex менее чем за секунду. Я не знаю, чем отличаются эти два компилятора, но выполнение любого проекта с тяжелой кодовой базой во Flash IDE просто болезненно. По мере роста проекта вам придется ждать все дольше и дольше.
Если вы делаете 3D-проект или что-то, что требует компиляции большого количества кода, я рекомендую создать проект только для ActionScript в Flex / Flash Builder. Может быть, у CS5 будет компилятор получше ...
отключить предупреждения в настройках публикации> Flash> as3
Возможно, вы захотите проверить встраивание своего персонажа - если вы случайно нажмете `` Вставить все символы '', он может встроить тысячи символов, это значительно замедлит вашу скорость публикации.
Снимите флажок «Режим предупреждений» в меню «Файл»> «Настройки публикации»> «Настройки ActionScript 3.0». Это имеет огромное значение. В недавнем проекте я сократил время компиляции с 1 минуты 20 секунд до 7 секунд! Да, я тоже был удивлен.
Ух ты! Это ОГРОМНО изменило мой проект. Компиляция теперь занимает несколько секунд. До этого прошло около минуты. Большое спасибо за отличный совет! :)
Спасибо за совет по отключению предупреждений в настройках публикации. Это ускорило время публикации на 80%. От 25 секунд до менее 5 секунд. :)