|
|
|||||
Регистрация: Mar 2011
Сообщений: 3
|
Как уменьшить размер .fla проекта?
Давным давно, еще школьником, пилил флеш-игрушку мечты на AS3 потихоньку, потом надолго на нее забил.
Пользовался и пользуюсь Flash IDE от адоба, версия сейчас стоит CS5.5. Сейчас решил вернуться к ее разработке, захотел пользоваться git-ом, чтобы держать репо где-нибудь и спокойно кодить из разных мест с разных устройств. Но столкнулся с такой бедой: .fla-файл пушится очень долго и печально, тк весит аж целых 40 МБ. Потом я вспомнил, что чтобы сделать прелоадер, я накидывал элементики на сцену во второй кадр, да тащил их все в библиотеку - а это куча .mp3, .wav, .png и прочих очень тяжелых вещей, которые ой как не хотелось бы включать в коммиты и вообще гитом отслеживать. Но если во .fla-хе их удалить из библиотеки в IDE-шке, их нельзя будет просто так взять и подгрузить "на ходу" при компиляции .swf? Или можно? И желательно так, чтобы в скомпиленной флешке прелоадер работал как и прежде. Подскажите, в каком направлении копать? Или попробовать перекатиться в какой-нибудь FlashDevelop? Но куча кода написана под IDE-ху и дерганье элементов из библиотеки... |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Чтоб уменьшить размер fla, есть множество способов. Первый из них, это сжимать графическую составляющую, то есть можно ставить высокое качество картинки и применять сглаживание, а можно уменьшить качество картинки и не применять сглаживание, или уменьшить и применять сглаживание, при этом особо большой разницы не будет. Это даёт существенное уменьшение занимаемой памяти выходящего swf. Всё это делается внутри fla.
Второй вариант. Можно подгружать любые файлы из вне, то есть создать класс-загрузчик, который вытаскивает нужные файлы из указанной директории. Таким образом, все звуки и музыку можно подгружать отдельно, они не входят в fla файл, а значит fla будет иметь меньше веса, нежели когда всё в нем загружено изначально. Таким же методом можно подгружать и всю графику. Локально или удаленно(если файлы, например загружены на сервере, но тогда должно быть подключением к интернету). Важно понимать принцип компиляции swf, то есть ты запускаешь программу в виде swf, а не fla и в первых строках кода в идеале нужно прогружать конфигурацию для каких-либо объектов(если они есть), а также все необходимые ассеты. Таким образом, запускается прелоадер, который работает до тех пор, пока не будет загружены все данные из директорий, после чего уже идет заполнение сцены содержимым. Цитата:
|
|
|||||
Регистрация: Mar 2011
Сообщений: 3
|
Нет, написано почти все в классах отдельных, просто много где идет добавление на сцену по имени из библиотеки, например. Я понимаю, что такое .swf и .fla. Я хотел бы, чтобы в .swf-ку графика и звук запаковывались, а в проектном .fla-файле не отражались.
Можно примерчик кода небольшой? По типу чего-то такого: лежит, например, текстурка nebulaTex2.png в папке /img, сейчас точно такая же пнгшка (копия) лежит в библиотеке .fla-хи, к ней средствами IDE куда-то там в свойства приписан класс nebulaTex2, в файле которого прям чуточка сгенерированного кода. И когда я хочу этой текстуркой нарисовать какое нибудь облако, я делаю как-то так: texture.graphics.beginBitmapFill(new nebulaTex2(), mat, true, false); texture.graphics.drawCircle(0,0,256); texture.graphics.endFill(); Как грамотно выселить текстурку из .fla, но чтобы она при компиляции попросилась из папки /img и влезла запаковалась в .swf? Чтобы пользователю достаточно было уже просто запустить .swf-ку и играться, не имея у себя кучи папочек /img и тд. Суть в чем: мне не важно, сколько будет весить .swf-ка, но хочу максимально облегчить .fla. Свфку всегда можно сбилдить на месте, тк графика и музыка у меня на всех устройствах и так лежит по папочкам и не меняется, а вот изменения во .fla-хе хотелось бы вовремя коммитить (если они там вообще происходят, если не трогать библиотеку и всякий богомерзкий "код на кадрах"). |
|
|||||
В FlashDevelop-е можно прикреплять контент во время компиляции тегами Embed.
По идее сам тег компилирует флекс фреймворк и должно поддерживаться и в редакторе Flash CC. Никогда не задавался этим вопросом, если погуглить - то наверное можно что то найти. |
Часовой пояс GMT +4, время: 17:51. |
|
« Предыдущая тема | Следующая тема » |
|
|