Работа с FLA

Плохо, хорошо

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

Частично содержание данной статьи пересекается со статьей Валерии Маллаевой О fla-исходниках.

Плохо, хорошо

1. Не используйте ключевые кадры без необходимости
Не используйте ключевые кадры без необходимости
Иногда можно увидеть, что у слоя, который не меняется на протяжении всего ролика, последний кадр сделан ключевым, хотя, этот кадр ничем не отличается от предыдущего. Чтобы внести изменения в слой, приходится менять сразу несколько кадров. Если хотите продлить анимацию на временной шкале, вставляйте просто кадр (клавиша F5).

2. Не оставляйте незаполненные кадры
Не оставляйте незаполненные кадры
Заполняйте неиспользуемые кадры пустыми. Это убережёт от ошибок в анимации и неожиданных падений приложения.

3. Перед тем, как применить к объекту Classic Tween или Motion Tween, преобразуйте его в MovieClip
Перед тем, как применить к объекту Classic Tween или Motion Tween, преобразуйте его в MovieClip
Если предварительно не преобразовывать объект, то при применении Classic Tween по умолчанию в библиотеке создается Shape с названием «Tween n». С такими объектами жутко неудобно работать. В нижней части картинки по названиям можно определить, что в библиотеке лежат воздушный шар, облака, самолет и солнце. И сразу ясно, чем является каждый клип. По верхней картинке это определить невозможно.

4. Давайте объектам в библиотеке вменяемые названия
Давайте объектам в библиотеке вменяемые названия
Это тема для большого разговора, особенно, если идет работа над крупным проектом. Мне приходилось видеть библиотеки с тысячей символов на одном уровне с названиями, вроде, «asdfbvf» и «Символ 118». Представляете, как трудно искать нужный элемент в такой библиотеке. Пожалейте свои и чужие нервы. Потратьте время на то, чтобы дать нормальное название. Поверьте, оно окупится.

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

6. Удаляйте неиспользуемые объекты из библиотеки
Удаляйте неиспользуемые объекты из библиотеки
Иногда можно увидеть в библиотеке кучу недоделанной графики, которая нигде не используется. Также, мало кто убирает из библиотеки неиспользуемые картинки. Это мусор, его нужно удалять.

7. Сортируйте объекты в библиотеке по папкам
Сортируйте объекты в библиотеке по папкам
Даже если вы дали понятные названия объектам, не всегда можно быстро найти нужный, если их, например, больше 500, и они не отсортированы. Перемещайте логически связанные элементы в отдельные папки. Кстати, при таком подходе сразу станет видно, какие объекты в библиотеке не используются.

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

9. Не создавайте новые сцены
Не создавайте новые сцены
Делайте все в одной. Сцены – наследие старых версий.

10. Не используйте группировки
Не используйте группировки
Ими невозможно программно управлять. Они не сохраняются в библиотеке. Если хочется объединить несколько символов, конвертируйте их в MovieClip или Shape.

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

12. Не конвертируйте текст в кривые
Не конвертируйте текст в кривые
Честно говоря, не представляю, для чего и кто так делает. Возможно, подобное происходит при импорте из других векторных редакторов. Не делайте так, текст потом не отредактировать.

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

Комментарии 64

    +12
    Правила типа «не оставляйте мусора» и «давайте всем сущностям вменяемые имена» применимы вообще ко всему — от программного кода до повседневной жизни:)
      +1
      назвал новую сущность «Алексеем» (как и меня) вот теперь мучаюсь.
        +2
        Вот! О чем и речь! а надо было хорошенько подумать:)
      +3
      Для 6-го пункта ещё можно использовать: в библиотеке в меню выбрать «Select Unused Items» (после чего выделятся все символы которые не используются), и далее удалить их одним нажатием клавиши «Delete».
        +4
        Жаль что советы касаются только самого базового уровня использования флэша.
          –2
          Мир станет лучше после этого поста, т.к. 80% работы на флеше сводится к простейшей анимации.
            +3
            Скажите это flash/flex программистам.
              0
              Что-то мне подсказывает, что это пост не для них.
                0
                И для них тоже.
          +1
          + к пунктам: оставляйте комментарии в коде!
            +1
            Это уже относится ко всем исходникам
              0
              Я считаю, что комментарии очень часто бывают излишни. Красивый и понятный код не нуждается к комментариях за исключением участков со сложной логикой. Чтобы меня правильно поняли, скажу, что подобная тема очень хорошо освещается в книгах «Чистый код» и «Совершенный код».
                0
                Вспомнилось:
                Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.
                +2
                по 3 пункту
                анимацию лучше делать не с MovieClip, а с Graphic, потому что потом может понадобится дать имя этому объекту для программного управления и в случае MovieClip придется прописывать имя на каждом кейфрейме
                  +1
                  Зависит от конкретного случая. MovieClip удобен тем, что к нему можно применять фильтры и с его помощью легче реализуются зацикленные анимации, но он некорректно отображается при экспорте в .AVI (только первый кадр, внутренняя анимация не происходит).
                    0
                    согласен, в случае с фильтрами не поспоришь
                      0
                      Хмм, нет возможности проверить на PC, но я переодически делаю export to movie > .mov на Маке и внутренняя анимация в мувиклипах играется без проблем
                        0
                        Да, на удивление, в .MOV экспорт отличный.
                        А я уже три года записываю конечные мульты с помощью Screen Capture и сжимаю отдельно. Спасибо, что открыли глаза!
                      0
                      MovieClip-у можно задать имя и по имени обращаться из кода.
                      Основное отличие насколько я понимаю, в том, что MovieClip проигрывает кадры внутри себя, а кадры внутри Graphics проигрываются его родителем.
                      Т.е. если сделать Graphics с пятью кадрами и поместить его на сцену с тремя, воспроизводиться будут только три кадра из Graphics, MovieClip же будет проигрывать все свои кадры в каждом кадре родителя.
                        0
                        я имел ввиду то, с чем сталкивался неоднократно
                        когда какой-либо мувик начинают анимировать, а потом возникает потребность в программном обращении к нему. вот тут то и приходится давать одно и то же имя этому мувику на каждом кейфрейме.
                        — из всего вышесказанного, получается, что наиболее правильно, чтобы внутрення анимация была в мувике, но этот мувик перед внешней анимацией нужно засунуть в график.
                          0
                          Лично я с опаской отношусь к Graphics :)
                          Чтобы избежать путаницы использую только мувики. Но ваша идея интересна, надо попробовать
                      +4
                      Со всем согласен, кроме двух пунктов:

                      9. Не понимаю сути пункта. Что плохого в сценах? Если лепить все сцены в одну, то получится Layer Hell.
                      12. Текст преобразуется в кривые, когда к нему надо применить Distort Transform. Да, к сожалению, потом он уже не редактируется.

                      А от себя могу добавить следующее:

                      1. Не использовать Filters без надобности, потому что они сильно нагружают процессор (особенно Glow)
                      2. Используйте свойство Ease у Motion Tween'ов, чтобы они не выглядели топорно. Даже заметку когда-то про это свойство писал.
                        0
                        Спасибо за дополнение.
                        На счет Glow, я знаю такой момент, что есть каждому элементу в отдельности применять фильтр, то нагрузка будет гораздо больше, чем если поместить все объекты в контейнер и применять к нему.

                        По пункту №9. Я придерживаюсь такого мнения, что на главной временной шкале не должно быть ни какой анимации. Вся анимация и графика в MovieClip. Соответственно, редактировать можно внутри него. А если понадобится создать много слоев, то нет разницы MovieClip это или сцена.
                          0
                          Фи вам за ваше мнение по пункту 9
                            0
                            Сцены нужны, сцены важны. Если не знаете как их применять, то это уже другой вопрос.
                              0
                              Другой вопрос скорее в том, что кто-то может не знать как обойтись без сцен.
                              Сцены — зло, а чтобы не было «Layer Hell», как было сказано выше, слои можно организовать по папкам
                                +1
                                Когда я делал мульт, длиной 3 минуты, у меня было 38 сцен, по 3-4 слоя в каждой. Даже если с папками, все равно это было бы ужасно, особенно если также следовать пункту 2 «Не оставлять незаполненных кадров».
                                  0
                                  просто, я как программист сделал бы иначе.
                                  мне тяжело смотреть на это глазами аниматора, возможно я и не прав.
                                    +1
                                    для аниматора все слои в одной сцене — все равно, что для программиста весь код в одном файле. куда приятнее разделять код на несколько файлов, даже несмотря на то, что его можно свернуть в неймспейсы и в пределах одного файла
                                  0
                                  Почему это сцены зло?
                            +1
                            > 12. Не конвертируйте текст в кривые
                            Это делается по 2 причинам
                            1. Флеш иногда глючит при использовании текста
                            2. Если текст надо сильно поменять\перекрасить\.., с ним проще работать в векторе
                              +1
                              3) Если не хочется встраивать во флешку нестандартный шрифт ради нескольких фраз.
                                +2
                                Шрифты для полей Static не встраиваются. Только отдельные символы.
                                0
                                2… Ну тогда уже лучше сделать текст маской, а под маской играться с вектором как вам угодно
                                +1
                                приведите пример для второго пункта, когда приложение из отсутствия пустых кадров неожиданно упадет
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    –1
                                    Когда у вас в 1й линейке именованный объект, а код, который к нему обращается — во 2й. Например.
                                      0
                                      Слои существуют только в IDE для удобства редактирования, в конечном swf-файле все слои сводятся в один, твины тоже просчитываются в последовательность ключевых кадров.
                                    0
                                    Никита, спасибо за статью. Нашему флешеру кинул ссылку — говорит нельколько пунктов он не знал =)
                                      +3
                                      У вас странный флешер
                                        +1
                                        Как бы не у всех есть деньги на высококлассных специалистов. А кто-то растит их сам. Спасибо что насрали в карму.
                                          0
                                          Я не срал :-) Поверьте.

                                          Рекоммендую просто купить ему книжку. Как правило, книжки очень здорово упорядочивают те знания, которые были надерганы из инета
                                            0
                                            Тогда искренне прошу прощения за свои слова.
                                            Книжку покупали, видимо не все внимательно прочитал ))
                                      +1
                                      Лично меня больше всего раздражает когда аниматоры вставляют в кадры свой говнокод на допотопном ас1, когда уже во всю все пишут ас3. Приходится портировать в код в ас3.

                                      Так же раздражают по русски названные клипы, кадры, слои. Приходится переименовывать в нормальные английские слова.

                                      Вообще с горе дизайнерами и аниматорами бороться довольно трудно, но это стоит того!
                                        +3
                                        Скажите уже аниматорам, что-бы не писали код в кадрах.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                            +1
                                            Делайте проверку на кадр в классе объекта, например.

                                            Я не буду писать код в кадрах
                                            Я не буду писать код в кадрах
                                            Я не буду писать код в кадрах
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                            0
                                            Я не против кода в кадрах. Я против as1 и as2.
                                              0
                                              И чем вас обидели as1 и as2? Много говнокода? На as3 его не меньше.
                                            0
                                            Вам было бы проще, если бы аниматоры на словах рассказывали, как должна вести себя анимация, которую они сделают в AS1/2?
                                              0
                                              вы просто не видели, наверное, тех шедевров которые выдают дизайнеры и аниматоры.
                                              иногда проще действительно получается на словах
                                              несколько раз были случаи, когда их код из 30 строк спокойно заменялся аналогом на 3-4 строки
                                                +1
                                                иногда проще на словах, иногда проще показать в AS2 (я часто так делаю).
                                                Не вижу просто проблемы для прогера переписать кусок AS2 кода на AS3 — всё равно же надо будет писать с нуля. Мне, как бездарю в программировании, многие элементы AS2 кажутся куда более адекватными по отношению к простым смертным, чем серьёзный AS3
                                                  0
                                                  Выключите у компилятора strict mode и есть высокая доля вероятности, что и переписывать ничего не придется.
                                            +1
                                            Пользуясь случаем поинтересуюсь бесплатными (сорцы не прошу, демка или триал устроит) средствами разработки Flash, *без проблем* работающие на Линуксе хотя бы под вайном.
                                              0
                                              Если вам редактировать fla, то боюсь огорчить. Формат закрытый, тулзов нет.
                                                0
                                                Кстати фотошоп CS5 работает под вайном довольно неплохо, есть шанс что и флеш будет работать.
                                                На AppDB пишут:
                                                Install the program in Windows and copy the installed files to Ubuntu. These additional libraries from winetricks are needed: vcrun2008, msxml3, atmlib, gdiplus.
                                                Думаю пойдет какаянибудь Portable версия.
                                              +1
                                              По 10-му пункту тоже бы поспорил. Группировки нужны там, где идет работа с рисованием примитивов. Не только программеры на флеше пишут, его еще и для анимации можно применять.
                                                0
                                                по поводу пунктов 8 и 12 очень спорно, если проект состоит и 100 подгружаемых swf, то из за ембеда размер его увеличивается в разы. Иногда проще превращать в вектор. Хотя правильней конечно ембедить шрифты в само приложение и с fla оставлять как textField
                                                  0
                                                  Для статик-полей ембед не идет. Для остальных — можно вынести сам шрифт куда-нибудь.
                                                  +1
                                                  Заменил бы 11 пункт на:«Не пишите код в кадрах!»
                                                    0
                                                    В комментариях уже озвучили часть замечаний к статье по сценам, группам и встраиваемым шрифтам. От себя добавлю:
                                                    1. Следите за весом, используемой графики. Не надо запихивать картинку 1024 на 1024, чтобы потом во флэше её ужимать до 15 на 15.
                                                    2. Не злоупотребляйте детализацией. Помните, что Вы рисуете анимацию, а не статическую картинку. Во-первых, излишне детализованная картинка сильно грузит процессов. Во-вторых, пользователь этого просто не заметит.
                                                    3. Не злоупотребляйте масками и полупрозрачностью. Это нагружает процессор.
                                                    4. Флэш поддерживает русские названия. Поэтому, если не знаете английский, то пишите по русски. Не надо давать названия на киргуде.
                                                    5. Я бы не был столь категоричен в случае со сценами. Если очень длинная анимация, они помогают организовать процесс. Но иногда не замечаешь, что есть ещё сцены кроме текущей. Поэтому желательно предупреждать других, что во fla-файле несколько сцен.

                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                    Самое читаемое