Перемещение букв
Перемещение букв
Исходный файл: Textfly.fla
Во многих Flash-роликах по экрану перемешается текст. Сушествует множество способов создания этого эффекта, некоторые из них проиллюстрированы примерами, которые имеются на Web-сайте поддержки книги.
Задача проекта
В данном разделе рассказано, как создать ролик, где текстовая фраза разделяется на отдельные буквы, каждая из которых помешается в случайное место экрана. Затем эти буквы перемешаются по экрану и, соединяясь, вновь образуют исходную фразу.
На рис. 5.7 изображены четыре кадра из ролика, имюшегося на Web-сайте. Буквы спускаются сверху и выстраиваются в нужном порядке в нижней части экрана.
Рисунок 5.7 . Четыре кадра анимации, созданной при помощи ActionScript
Посмотрите ролик Textfly.fla на Web-сайте. Обратите внимание, где располагаются сценарии и как организован ролик в целом.
Подход
Ролик создается следующим образом: текст делится на отдельные буквы, каждая из которых представляет собой отдельный клип. Затем из случайных мест на экране эти клипы перемешаются в позиции, соответствуюшие исходному тексту.
Подготовка ролика
Ролик включает графическое изображение, расположенное в центре экрана и совершенно не зависяшее от текстового эффекта.
Внутри ролика находится один клип, содержаший букву "А". Клип был создан из небольшого текстового окна. В панели Properties ему было назначено свойство Dynamic Text и присвоено имя переменной letterText (рис. 5.8).
Затем текстовое поле преобразуется в клип при помоши команды Insert ? Convert To Symbol. Копия эталона получает имя letter0 и помешается в то место, где находится первая буква фразы, в данном случае – в нижний левый угол.
Создание кода
В процессе выполнения программы из одного клипа создается несколько его экземпляров. В каждом новом цикле при помоши функции duplicateMovieClip создается новый экземпляр клипа для каждой из букв. После создания каждого экземпляра в него вводятся переменные endx и endy, задаюшие окончательную позицию букв в анимации. Значение переменной endy соответствует позиции _y клипа Letter0, значение переменной endx увеличивается слева направо.
Сценарий создает новые копии клипа для букв начиная с той, которая идет под номером 1. Первая буква (она имеет номер 0) использует уже сушествуюший клип Letter0.text = «Introducing: Flashy the Fox!»;
for (i=0;i<text.length;i++) {
if (i > 0) duplicateMovieClip("Letter0","letter"+i,i);
this["letter"+i].letterText = text.charAt(i);
this["letter"+i].endx = this["LetterO"]._x + i*19;
this["letter"+i].endy = this["LetterO"]._y;
}Данный текст является ознакомительным фрагментом.