Часто необходим эффект текста для баннера, в котором используются скрипты AS3. Я собрала архивную папку с примерами, файлами fla и папками со скриптами. Скачайте, распакуйте и выберите из примеров (файлы swf) необходимый эффект. Файл fla соответствующего названия откройте в редакторе Adobe Flash Pro. В нем есть два слоя. Первый - скрипт и его можно скопировать к себе в баннер, нажмите F9. В редакторе кода "Действия" скопируйте весь скрипт. Затем в своем рабочем файле баннера создайте новый слой и в нужном кадре вызовите редактор кода "Действия" (F9), вставьте скопированный скрипт. Затем обратите внимание в файле примера как создан текст - просто текстовая строка или символ. Если символ, то зайдите в него. Делайте точно также как в файле примера. Посмотрите свойства текста и имя.
В ActionScript 3 в отличие от второй версии код скрипта ставится не к объекту, а в кадр. Поэтому обратите внимание где текст будет появляться.
Разберем файл basic_setting.fla и как перенести к себе такое чудо в баннер. Удобно пользоваться символами. Потому создайте символ в своем баннере, назовите допустим text. В этом символе создайте 2 слоя. Первый слой назовите as - в нем будет скрипт для текста. Теперь зайдите в файл с примером basic_setting.fla и выберите слой as на первом кадре. Нажмите F9 или вызовите редактор "Действия". В редакторе будет готовый скрипт (большой, но не страшный, там больше комментариев). Скопируйте этот скрипт. И зайдите в свой баннер, в созданном слое as в первом кадре нажмите F9 и в редакторе вставьте этот скопированный скрипт.
Сейчас отвлеку по скрипту.
stage.align = "TL";
stage.scaleMode = "noScale";
Это строчки для любого баннера, обозначают:
Stage.scaleMode — режим масштабирования сцены. Возможные значения этого свойства и подробное описание их действия есть в статье хэлпа. Скажу только, что нам понадобится режим Stage.scaleMode = "noScale", при котором флэш небудет пытаться масштабировать содержимое ролика под габариты окна.
Stage.align — выравнивание cодержимого ролика в окне плеера или броузера. Свойство указывает выравнивание по вертикали и горизонтали. В примерах к этому материалу я буду использовать выравнивание по верхнему левому углу окна, от есть Stage.align = "TL"(T — top, L — left). Мне кажется, это удобнее всего. Но, в принципе, вы можете использовать любой другой удобный вам вид выравнивания, это не существенно.
А еще лучше почитать про эти вещи тут http://noregret.org/tutor/elastic/
Далее в комментариях скрипта на английском рассказано обозначение строк и откуда берутся файлы кода. Я в папку с примерами уже заложила все что нужно. Но сразу в примерах не было папки flupie и caurina. В комментариях написано откуда их можно скачать и как они подключаться должны. Многострочные комментарии пишутся так: /* КОММЕНТАРИЙ */ Поэтому если часто используете скрипты и вам комментарии мешают - можете их удалить, или по-своему переписать. Может вы код будете изменять. Далее
import flupie.textanim.*;
Эта строка обозначает подключение файлов скриптов из папок flupie и textanim внутри папки flupie. Файлов скриптов несколько, потому обозначены * звездочкой. А запись уже логически понятна: внешняя папка, точка, которая указывает уровень и затем вложенная папка, опять точка и уже звездочкой обозначены файлы. Таким образом вы можете отследить какие должны быть папки и файлы, как названы и где поставлены, чтобы работал скрипт и появилась анимация. Адрес подключения файлов скриптов и папок идет на уровне нахождения файла баннера. Так что зайдите в папку с примерами и скопируйте папки flupie, caurina, extra в свою папку, где находится ваш файл с баннером.
import caurina.transitions.*;
Эта строка также показывает подключение файлов скриптов. Уже понятно.
/*
EXAMPLE: SINGLE LINE TEXT
0 - IMPORTANT! Don’t forget to embed the font that you want to use;
1 - Creating a new instance of TextAnim, and it replaces the textField automatically;
2 - Indicates the way of TextAnim will be animated. Can be FIRST_LAST, LAST_FIRST, CENTER_EDGES, EDGES_CENTER, RANDOM;
3 - Turning the blocks visible = false when dispatch block;
4 - Giving to TextAnim a effect function for apply for each blocks (can be an array of effects);
5 - Starts the animation
*/
Комментарий о выборе вида анимации. Можете перевести с английского и употребить по назначению. Нумерация - это нумерация строк последующего за комментарием кода и его расшифровка.
var myAnim:TextAnim = new TextAnim(label);
myAnim.mode = TextAnimMode.CENTER_EDGES;
myAnim.blocksVisible = false;
myAnim.effects = myEffect;
myAnim.start();
В первой строке кода обратите внимание на label - это имя объекта текста. Т.е. когда создадите текст, зайдите на панель свойств и впишите имя label. Если Вы будете использовать другое имя, то измените его в этом коде. Во второй строке кода уже по комментарию понятно, что она указывает вид эффекта, то есть как будут появляться буквы. В этом коде задан CENTER_EDGES, т.е. текст появляется от центра к краям. Вы можете выбрать из следующих вариантов один FIRST_LAST, LAST_FIRST, CENTER_EDGES, EDGES_CENTER, RANDOM и варианты протестировать. В следующей строке визуализация - false. А в четвертой строке присваивается функция myEffect, которая будет введена следующей частью кода. И в последней строке этой части кода команда старта действия анимации.
function myEffect(block:TextAnimBlock):void
{
block.scaleX = block.scaleY = 0;
Tweener.addTween(block, {scaleX:1, scaleY:1, time:1, transition:"easeoutelastic"});
}
В этой части кода скрипта описана функция myEffect для объекта текст. Часто повторяющиеся scale дают понять эффект появления текста - с помощью масштабирования букв. block.scaleX = block.scaleY = 0;означает что буквы будут появляться равнозначно по ширине и высоте и приравнено изначальное масштабирование исходно нулю, т.е. X=Y=0. Вы можете например изменить 0 на 5. Тогда буквы будут появляться более крупными и уменьшаться в процессе появления к своему реальному размеру. Tweener.addTween(block, {scaleX:1, scaleY:1, time:1, transition:"easeoutelastic"}); А в этом описании функции эффект анимации создается с помощью класса Tween и конечно с созданием неких промежуточных объектов. Подробнее http://help.adobe.com/ru_RU/FlashPlatform/referenc...pt/3/fl/transitions/Tween.html
{scaleX:1, scaleY:1, time:1, transition:"easeoutelastic"} приводятся условия функции, их также можно изменять. Если изменить единицу в scaleX:1, scaleY:1, на 2, то буквы будут крупнее после анимации, а если 0, то и вовсе текст не появится. time:1 - это скорость анимации, если поставить вместо 1 нуль, то буквы появятся так быстро, что эффект анимации не будет виден, а вот если заменить на 6, то эффект появления будет более медленным, плавным. "easeoutelastic" - это класс эффектов замедления почитать подробнее и пользоваться тут http://help.adobe.com/ru_RU/FlashPlatform/referenc...ons/easing/package-detail.html
Про скрипт уже стало более ясно. И как видно, не такой он и страшный. Конечно, в других примерах скрипты усложнены, но и там можно разобраться, если необходимо что-то изменить. Самое главное, что выяснили из кода скрипта - какие папки и файлы должны быть для исполнения скрипта. А также имя объекта текста - label. Вот теперь еще аз напомню - папки с файлами из папки с примерами скопировали в папку своего баннера. Так что зайдите в папку с примерами и скопируйте папки flupie, caurina, extra в свою папку, где находится ваш файл с баннером. А теперь зайдите в свой файл баннера и в символе text создайте второй слой под названием label. В этом слое на первом кадре создайте объект текста. В примере текст TEXTANIM AS3, ну а вы можете написать то что вам нужно. В AS3 удобнее создавать текстовые эффекты, чем в AS2, в предыдущей версии у меня есть примеры, но там текст разложен по частям, на отдельные буквы и каждой нужно дать имя, а количество символов прописать в коде скрипта, одна морока. А в данной версии AS3 в этих примерах - вписал текст, изменил - легко. Итак, объект текста создали, написали текст, а теперь зашли на панель Свойства и вписали имя label, как в скрипте. Затем проставили свойства как в примере: классический текст, динамический, сглаживание для анимации и внедрите шрифт, пожалуйста, поведение однострочный, и на свой вкус выберите предварительно внедрения шрифт, размер, цвет. Выйдите из символа text. А теперь создайте новый слой в баннере на основной сцене и в любой кадр поставьте символ text из Библиотеки. Можно создавать объект текста label и слой с кодом as без символа, но с символом гораздо удобнее.
Просмотрите публикацию. Если у вас в баннере есть другая анимация, то на протяжении проигрывания всего баннера эффект появления текста данного примера будет появляться с повторами циклично. То есть создали текст, он должен в анимации появиться и остаться на месте не двигаться или спустя некоторое время исчезнуть как вы планируете у себя в баннере. Но со скриптом так дело не пойдет, есть скрипты, которые рассчитаны на появление текста и будут этот текст мучить и повторять эффект на протяжении всей общей анимации баннера. Поэтому либо вы делаете своими методами, либо по моей схеме. Я создавала символ. В нем создавала 2 слоя - как в примере, с текстом и со скриптом. И создавала второй символ с текстом без эффекта появления, т.е. без скрипта. Первый символ с эффектом текста помещала в первых кадрах баннера, подсчитала время появления текста, растянула символ по кадрам на сколько нужно времени и второй символ без эффекта текста ставила после кадров с первым символом на новом еще одном слое, а после первого символа добавляла на дорожку пустой кадр. Таким образом, анимация проигрывала первый символ с появлением текста, а потом кадры статичного текста. Можно конечно использовать коды stop() или gotoandplay и gotoandstop. Но в моем случае обошлось без этих кодов. Все зависит от идеи баннера.
Скачивайте папку с примерами. Примеров 11, а с изменениями кода скрипта будет больше вариантов.