Статьи

TimelineLite Ultimate Руководство по началу работы: управление воспроизведением

В предыдущей сессии я рассказал о том, как создать базовый TimelineLite . Сегодня я покажу вам методы и свойства, которые вы будете использовать для управления воспроизведением вашей TimelineLite. Комбинируя эти методы и свойства, вы можете расширить встроенную функциональность TimelineLite для создания элементов управления перемоткой вперед и воспроизведением / паузой. Я также покажу вам, как легко настроить компонент Slider для использования в качестве скребка TimelineLite.


Давайте посмотрим на конечный результат, к которому мы будем стремиться:

Вы можете найти все файлы, использованные для создания SWF выше, в исходных файлах этого урока .



Следующие методы дают вам точный контроль над воспроизведением вашей TimelineLite

  • play () — начинает воспроизведение вперед с текущей позиции.
  • Пауза () — Останавливает временную шкалу.
  • reverse () — заставляет временную шкалу двигаться назад. Если вы хотите изменить только направление временной шкалы и не продолжать воспроизведение в обратном направлении, вы можете передать параметру forceResume значение false — то есть reverse( false ) .
  • resume () — Начинает воспроизведение с текущей позиции без изменения направления (вперед или назад).
  • restart () — воспроизводит временную шкалу с начала

Комбинируя встроенные методы и свойства, можно легко создавать расширенные функциональные возможности:

Перемотка вперед — вы можете создать элемент ускоренной перемотки вперед, увеличив свойство timeScale и принудительно timeScale воспроизведение в прямом направлении.

1
2
3
4
5
private function fastForwardHandler(e:MouseEvent):void
{
    tl.timeScale = 4;
    tl.play();
}

Play / Pause Toggle — Для переключения между режимами воспроизведения и паузы просто отмените свойство paused . Важно убедиться, что timeScale и reversed свойства установлены на нормальные значения, поскольку они могут быть изменены с помощью кнопок ускоренной перемотки вперед и назад соответственно.

1
2
3
4
5
6
private function playPauseHandler(e:MouseEvent):void
{
    resetTimeScale();
    tl.reversed = false;
    tl.paused = !tl.paused;
}

Компонент Slider Scrubber — Компонент Slider позволяет довольно легко перемещаться по временной шкале, изменяя currentProgress временной шкалы. Ползунок настроен на вывод значений от 0 до 100. В коде это значение преобразуется в число от 0 до 1.

01
02
03
04
05
06
07
08
09
10
11
12
import fl.controls.Slider;
import fl.events.SliderEvent;
 
slider.addEventListener(SliderEvent.THUMB_DRAG, sliderChange);
 
private function sliderChange(e:SliderEvent):void
{
    tl.currentProgress = slider.value * .01;
     
    //forces the timeline to stop when the scrubber is released.
    tl.pause();
}

Какая? Вы даете мне домашнее задание? Да! Я хочу, чтобы ты был лучшим Согните мышцы разума с этим небольшим испытанием.

  • Создайте TimelineLite, который анимирует шесть элементов
  • Создайте кнопки воспроизведения, паузы и реверса, как в демонстрационном файле выше
  • Создавайте кнопки со сложными функциями, такими как быстрая перемотка вперед и назад

Чтобы по-настоящему выучить этот материал, нет ничего лучше, чем погрузиться и немного испачкать руки.


До сих пор я давал вам достаточное количество информации о создании и управлении анимациями TimelineLite. Хотя есть некоторые очевидные сходства в том, как вы управляете анимациями временной шкалы TimelineLite и Flash IDE, мне очень нравится, как TimelineLite дает аниматорам гораздо больше контроля с помощью методов reverse() , restart() и resume() . timeScale и timeScale открывают некоторые действительно интересные возможности, которые будут обсуждаться еще больше в будущем.

В следующем видео я покажу вам, как добавлять метки к экземплярам TimelineLite, чтобы вы могли легко переходить к определенным разделам ваших временных шкал. Метки TimelineLite работают очень похоже на метки кадров в Flash IDE, но с некоторыми дополнительными функциями. Это будет очень весело.

Если у вас есть какие-либо вопросы или комментарии к этому уроку — или ваша домашняя работа;) — не стесняйтесь оставлять комментарии ниже.

Спасибо за просмотр!