Вопрос:
Вот у меня проблема, как реализовать плавный прыжок MovieClipa. Я понимаю надо делать так, прибавляем постепенно y до определённой отметки и потом опускаем на столько же на сколько прибавили,но как это сделать плавно?
Ответ:
Гораздо проще сделать это посредством использования особого класса во Flash, который называется mx.transitions.Tween. Подключается он к флешке путём вставки в код нужного кадра на главной временной шкале фильма следующих строк:
import mx.transitions.Tween;
import mx.transitions.easing.*;
Далее всё, что нам нужно - это создать саму функцию Tween. Создаётся она через запись вида new Tween(obj_mc, “_x”, Regular.easeOut, 0, 100, time, true), где:
1. obj_mc - путь к объекту, свойство которого мы будем изменять;
2. “_x” - имя свойства, которое будет изменено. Имя обязательно должно быть записано в кавычках. Можно изменять не только стандартные свойства объектов, но и свойства созданные собственноручно;
3. Regular.easeOut - тип движения. Отвечает за то, с каким ускорением/способом будет изменяться свойство (см. исходник);
4. 0 - начальная точка свойства;
5. 100 - конечная точка свойства;
6. time - переменная отвечающая за длительность изменения. Может указываться, как в секундах, так и в кадрах;
7. true - значение флага, отвечающего за тип длины движения. True - секунды, false - кадры.
Помимо класса Tween, нам прийдется использовать еще и интервалы, через функцию setInterval(), если вы не знаете что это такое, и как с ним работать — не огорчайтесь, в исходнике, который я прилагаю к уроку, достаточно широко описаны способы работы с этой функцией, и некоторые её особенности.
Смотрим:
Сама флешка » Исходник »
P.S.:
Я не видел, чтобы где-то в сети описывали еще эту проблему, но иногда бывает нужно остановить “движение” раньше времени. Чтобы иметь возможность обращаться к свойствам объекта Tween просто присваиваем Tween переменной:
varTween = new Tween(obj_mc, “_x”, Regular.easeOut, 0, 100, time, true);
После этого мы сможем остановить анимацию через varTween.stop(). |