Link:INB Home|INB English| INB русский язык|INB العربية|INB Türkiye|INB فارسی|INB Español|INB Français|INB Português|INB Deutsch|INB 國語|INB 中文|INB 日本语|INB 한국어|INB ภาษาไทย|INB tiếng Việt||Уроки Flash Mouse Trail
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум
Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com
INB русский язык Форум

Добро пожаловать! inbforum.COM Интернет без границ Форум Здесь вы можете обсудить с друзьями по всему миру прений, приходите и присоединяйтесь к нам! Постоянный имя: Ruinbforum.forumotion.com


Вы не подключены. Войдите или зарегистрируйтесь

《《《《《《《上一页INBforum   Перейти вниз

上一页INBforum》》》》》》》Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

1Уроки Flash Mouse Trail Empty Уроки Flash Mouse Trail Пт Окт 01, 2010 9:19 am

Admin

Admin
Admin
Скорее всего вам доводилось видеть подобный эффект в Интернете. В его создании нет ничего сложного. В этом туторе я объясню, как его создать, используя лишь AS, в уроке не используется ни каких графических символов, что в свою очередь значительно облегчает вес конечного файла. Данный урок рассчитан на пользователей Flash MX и выше.



Что ж, поскольку урок чисто скриптовский, то единственное, что вам надо сделать, это вставить в первый кадр в руте следующий код, а дальше мы подробно разберем каждый из его фрагментов.

Code
Text = "Ваш текст";
letters = Text.split("");
letterformat = new TextFormat();
letterformat.font = "Verdana";
letterformat.align = "center";
letterformat.size = "10";
spacing = 8;
speed = 3;
for (var LTR = 0; LTR<letters.length; LTR++) {
mc = _root.createEmptyMovieClip(LTR+"l", LTR);
mc.createTextField(letters[LTR]+"t", LTR, LTR*spacing, 10, 20, 20);
with (mc[letters[LTR]+"t"]) {
text = letters[LTR];
setTextFormat(letterformat);
selectable = false;
}
if (LTR) {
mc.prevClip = _root[(LTR-1)+"l"];
mc.onEnterFrame = function() {
this._x += (this.prevClip._x-this._x+5)/speed;
this._y += (this.prevClip._y-this._y)/speed;
};
} else {
mc.onEnterFrame = function() {
this._x += (_root._xmouse-this._x+10)/speed;
this._y += (_root._ymouse-this._y)/speed;
};
}
}

Вот так то, ну давайте смотреть, что же у нас тут такого написано.
Code
Text = "Ваш текст";
letters = Text.split("");
Первые две строки предельно просты, переменной Text вы присваиваете тот текст который хотите использовать, и разбиваете его посимвольно, записывая символы в массив letters.
Code
letterformat = new TextFormat();
letterformat.font = "Verdana";
letterformat.align = "center";
letterformat.size = "10";
Эти строки отвечают за настройки: текста первая просто создает новый объект типа TextFormat, 2 отвечает за шрифт, третья выставляет выравнивание, 4 - размер шрифта.
Code
spacing = 8;
speed = 3;
Данные две строки просто задают значения переменных, которые будут использованы нами в дальнейшем, переменная spacing отвечает за расстояние между буквами, переменная speed регулирует скорость перемещения(чем меньше переменная тем выше скорость).
Code
for (L=0; L<letters.length; L++) {}
Создаем цикл for, L=0; значит что при первом запуске цикла значение переменной L будет равняться нулю, L<letters.length; это условие показывающее, что работа цикла будет продолжаться пока значение переменной L будет меньше длины массива letters, возможно кто-то спросит почему начальное значение 0, а не 1, ведь это логично первый элемент имеет индекс один, однако во флеше массив автоматически начинается с нуля,и если мы начнем перебор с 1, то посеем первую букву.
Code
_root.createEmptyMovieClip(letters[L], L);
_root[letters[L]].createTextField(letters[L]+"t", L, L*spacing, 10, 20, 20);
Первая строчка создает новый Символ и присваивает ему имя, такое же, как и буква, которая будет в нем расположена.
Вторая строчка создает текстовое поле внутри символа, с именем буквы + t, далее задаются параметры: на каком уровне располагать созданное поле, а также координаты по х и у и размеры поля.
Code
with (_root[letters[L]][letters[L]+"t"]) {
text = letters[L];
setTextFormat(letterformat);
selectable = false;
}
Эти строки записывают букву в созданный для нее символ.

Code
if (L>0) {
_root[letters[L]].id = L;
}
Проверка если L>0 то в новую переменную, id внутри символа мы записываем текущее значение L это нам понадобиться, что бы в дальнейшем восстанавливать путь к той или иной букве.

Code
_root[letters[L]].onEnterFrame = function() {
this._x += (_root[letters[this.id-1]]._x-this.lastX)/speed;
this._y += (_root[letters[this.id-1]]._y-this.lastY)/speed;
this.lastX = this._x;
this.lastY = this._y;}
Эти строки рассчитывают положение буквы в зависимости от текущего положения буквы идущей перед ней. Тут то нам и пригодился наш id.
Code
} else {
_root[letters[L]].onEnterFrame = function() {
this._x += (_root._xmouse-this.lastX+10)/speed;
this._y += (_root._ymouse-this.lastY)/speed;
this.lastX = this._x;
this.lastY = this._y;
};
Эта часть выполняет подобную функцию, но для первого элемента.
Вот и все.]

http://ru.inbforum.com

上一页INBforum   Перейти вниз

上一页INBforumПредыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения

Copyright ©2009-2010 LTD Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

IT:SINGLESERVGoogle谷歌翻译TranslateFORUMSOFTLAYERGoogle谷歌广告联盟AdSenseAsia

 

Создать форум на Forum2x2 | ©phpBB | Бесплатный форум поддержки | Сообщить о нарушении | Последние обсуждения