Оптимизация графики
Работа с векторной графикой является сильной стороной флеш-технологии, благодаря которой он собственно и получил широкое распространение. Хранение и работа с векторными кривыми дает большие преимущества для всевозможных вариантов анимации и эффектов перед растровой, но важно понимать и слабые стороны, которые способны повлиять на хорошую работу.
Graphic
Графический элемент, который используется много раз, лучше оформлять в виде библиотечного символа “Graphic”. Это дает выигрыш по размеру конечного swf-файла, понятную структурированность, а также удобство модификации - при редактировании графического символа в библиотеке он автоматически будет изменен во всех местах куда был помещен. Яркий пример - кирпичная стена. Если мы в чистом клипе нарисуем кладку из пяти кирпичей и скомпилируем в swf, затем аналогично в другом чистом клипе создадим в библиотеке символ “кирпич” и выложим такую же кладку уже им и скомпилируем, то наши ожидания будут неоправданны - клип без библиотечного символа окажется меньше по размеру! Но ситуация стремительно меняется как только кладка будет состоять из 20-30 и более кирпичей, так как для хранения одного кирпича и его свойств (координаты, прозрачность, поворот и т.д.) там где он расположен на клипе требуется гораздо меньше места чем отрисовка всех кривых стены. Весьма оптимально конструировать новые графические объекты используя определенный набор символьных библиотечных или же по возможности как можно больше группировать элементы.
Упрощение кривых
Если в клипе присутствуют графические элементы со сложными границами (например импортируемыми из векторных редакторов), то желательно их упрощать (оптимизировать) насколько это возможно. В векторном представлении любая кривая представляется как набор точек-координат и заданным уравнением дуги окружности между каждой парой точек. Следовательно, чем у нас больше задано точек, тем более точно можно описать кривую. Но практически нет необходимости усложнять описание кривой, если в этом нет особой потребности, так как это забирает лишнюю память и скорость отрисовки. Следовательно, желательно минимизировать такое описание кривой, например при помощи меню: Modify>Shape>Optimize (Ctrl+Alt+Shift+C). К аналогичным результатам также приводят операции сглаживания “Smooth”, “Straighten”.
Сплошная линия
Надо стараться уменьшать количество разнообразных типов линий (пунктир, штриховая и т.д.). Самая базовая и оптимальная по занимаемой памяти и отрисовки является сплошная линия, поэтому желательно применять ее как можно чаше. Следует также отметить что весьма полезно использовать вместо “Brush Tool” - “Pencil Tool”, так как первый рисует не простую линию а полигон, залитый внутри выбранным цветом.
Вектор против Растра
Безусловно, одна из самых сильных сторон данной технологии является векторное представление данных, которое дает большие возможности для графики и анимации при сравнительно небольших объемах, поэтому основной упор всегда надо делать на векторную графику и по возможности стараться обходиться без растра. Последний рекомендуется использовать только как фоновый или статический. Но не всегда применение векторной графики может себя оправдывать. Например, отрисовка сложного, с множеством кривых и градиентов, векторного фона или анимация векторного объекта может занимать ощутимо больше времени, чем такая же растровая картинка. Поэтому иногда требуется жертвовать размерами клипа для достижения хорошей производительности. При этом желательно настраивать соотношение качество-объем импортированной растровой графики, чтоб как можно меньший объем она занимала.
Текст
Простой текст занимает гораздо меньше места чем такое же его графическое представление. Он храниться в виде текстовой строки и довольно быстро отрисовывается системой, поэтому целесообразно без особой нужды не преобразовывать текст в графику. При этом также требуется уменьшать количество шрифтов и стилей так как при добавлении хотя бы одной буквы выбранного шрифта по умолчанию копируется весь шрифт в клип. Поэтому лучше пользоваться встроенными шрифтами так как это экономит размер файла. Но если все же стандартные не подходят надо постараться выбрать шрифтовое оформление имеющее более простое начертание символов и указать какие именно символы (заглавные, строчные, цифры т.д.) будут использованы, последнее возможно только для динамического текста.
Анимация
Анимация, как и графика, тоже поставлена на математический фундамент. Отсюда анимационные последовательности гораздо оптимальней оформлять в виде “Tween“(конечно, если это возможно), чем в виде последовательностей кей-фреймов. “Tween” просто содержит формулу по преобразованию объекта анимации на определенном отрезке, что значительно экономит размер. Плееру также лучше такую анимации производить с “movie clip” чем с “graphic”. Анимационные последовательности надо переносить на отдельные слои от всех остальных неподвижных элементов, это не только добавляет удобство, но и экономит ресурсы, так как в процессе анимации будут обрабатываться и статические объекты, то есть выполняться лишняя работа.
Цвет
Если требуется сделать несколько одинаковых графических символов с различными цветами, то лучше создать один библиотечный графический символ и там где он расположен просто менять ему окраску в свойстве Color:Tint, например, когда надо создать много разноцветных шаров. Градиенты надо использовать довольно мало, так как их хранение занимает больше места(на 50 kB) чем сплошная заливка, и их отрисовка более трудоемка для плеера. Также не указывать часто прозрачность или маску для графических объектов - это сильно замедляет работу анимации.
Автор: Джордж Форест