Во многих языках программирования имеется функция синуса sin(), которая может быть полезна в различных вычислениях. В этом уроке рассмотрим, как добавить мувиклипу в Adobe Flash эффекты движения, масштабирования, вращения используя эту функцию, то есть создадим программную анимацию.
Функция синуса в ActionScript 3 принимает значение в виде радиан и возвращает значение от -1 до 1, которое можно присваивать или прибавлять свойствам мувиклипа. Для передачи значения в функцию будем использовать переменную angle, которую будем увеличивать в обработчике события enter_frame и вызывать эффект колебания свойства.
Для начала создадим какой-нибудь объект на сцене, допустим, это будет окружность. Преобразуем ее в символ и поместим в центр с координатами x = 275, y = 200. Как это сделать можете посмотреть в следующем видео:
В свойствах мувиклипа (properties) в поле «instance name» дадим имя circle_mc, как показано на изображении:

Теперь нужно добавить код на первый кадр панели Timeline.
addEventListener(Event.ENTER_FRAME,enter_frame);
var angle=0;
var range=10;
var speed = 0.25;
var y0 = circle_mc.y;
function enter_frame(e:Event){
angle+=speed;
circle_mc.y = y0 + Math.sin(angle)*range;
}
Запустите флэш-приложение, нажав на ctrl+enter, чтобы посмотреть, что получилось.
Давайте рассмотрим код. Сначала мы создали переменные, angle — отвечает за угол в радианах, range — это расстояние в пикселях, которое проходит мувиклип, speed — скорость движения. Для того чтобы объект оставался на первоначальном месте, и движение рассчитывалось от туда, нужно сохранить его первоначальное значение свойства y вот так var y0 = circle_mc.y; .
В нашем коде есть некоторая особенность, которая мало кем рассматривается, это постоянное увеличение переменной angle. После запуска приложения она будет увеличиваться, пока не достигнет предела, определенного типом переменной. Хотя для этого должно пройти не мало времени и даже если переменная достигнет максимального значения, то просто обнулится, тем не менее, это может привести к скачку параметра и к тому же это не совсем хорошая практика в программировании.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Поэтому добавим функцию, которая будет обнулять угол в радианах при его предельном увеличении.
function ConvertAngle(angle:Number):Number{
if (angle<0 || angle>=2*Math.PI){
angle = 0;
}
return angle;
}
Допишем в обработчик события enter_frame следующую строчку для обнуления значения угла.
angle = ConvertAngle(angle);
Теперь попробуем изменить масштаб шарика, используя такой же способ, что и для его движения. Добавьте следующую строчку кода:
circle_mc.scaleX = 1 + Math.sin(angle)*0.2;
Давайте разберем код. Вместо числовых значений вы можете все также использовать переменные. Для наглядности рассмотрим просто числа, вместо переменных. Единица означает первоначальный масштаб объекта, т.е. 100% , 0.2 указывает, что объект будет растягиваться и стягиваться на 20%.
Таким же образом можно вращать объекты, присваивая свойству rotation значение функции sin(). Чтобы это проверить, создадим другой объект, так как круг не совсем подходит. Нарисуем прямоугольник и конвертируем его в символ. Дайте ему любое имя, например, rect_mc. Код для вращения прямоугольника будет следующим:
rect_mc.rotation = 0.1 + Math.sin(angle)*range;
При помощи функции сунуса sin() в Adobe Flash можно создавать и другие различные эффекты. В этом уроке мы рассмотрели самые простые, которые вы можете усовершенствовать, поменяв различные параметры и условия.
Исходный код примера вы можете скачать здесь. Если вам понравился урок и вы хотите его сохранить или поделиться с друзьями, то добавьте его в закладки социальной сети (значки внизу), это также поможет продвижению сайта.
Автор: Jean Winters
Другие уроки AdobeFlash:
AdobeFlash: Как сделать кнопку с плавной анимацией и звуком при помощи ActionScript 3
ActionScript 3: Создание анимации при помощи класса Tween

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