Основы анимации
Существует несколько фундаментальных атрибутов, требуемых всех анимаций: Они должны быть связаны с объектом анимировать, и они должны определить, какая анимация будет выполняться и сколько времени продлится анимация.
В этой главе рассматриваются в абстрактных понятиях, основные методы анимации, которые характерны для технологий анимации OS X.
Целевой объект анимации
Каждая анимация должна быть связана с визуальным элементом, на который будет влиять анимация. Можно думать об этом как о целевом объекте анимации. Целевой объект анимации обеспечивает содержание, выведенное на экран пользователю. Анимация будет действовать или на целевой объект анимации в целом, или на определенное свойство цели, например, ее расположения в системе координат или цвете, с которым это нарисовано.
Анимации связаны с целевым объектом анимации. Вы явно не запускаете анимацию; целевой объект анимации запускает и останавливает анимацию.
Типы анимации
Анимация OS X поддерживает три отличных типа анимации: основная анимация, анимация ключевых кадров и анимации перехода.
Основная анимация
Основная анимация — также известный как простая анимация или анимация отдельного ключевого кадра — развивается от начального значения до целевого значения через серию промежуточных значений. Эти промежуточные значения вычислены, или интерполированы, такие, что анимация происходит по указанной продолжительности. Основная анимация требует, чтобы Вы указали свойство целевого объекта анимации для анимации.
Основная анимация может использоваться с любыми типами значения, которые могут быть интерполированы, включая:
целые числа и удваиваются
CGRect
,CGPoint
,CGSize
, иCGAffineTransform
структурыCATransform3D
структуры данныхCGColor
иCGImage
ссылки
Анимация ключевых кадров
Анимация ключевых кадров подобна основной анимации; однако, это позволяет Вам указывать массив целевых значений. Каждое из этих целевых значений достигнуто, в свою очередь, по продолжительности анимации. Ключевые кадры анимации ключевых кадров могут быть любым из типов, поддерживаемых основной анимацией или Базовым Графическим контуром, анализирующимся в серию CGPoint
объекты анимацией. Как основная анимация, анимация ключевых кадров требует, чтобы анимация действовала на определенное свойство целевого объекта анимации.
Анимация перехода
Анимации перехода указывают визуальный эффект, определяющий, как целевой объект анимации выведен на экран, поскольку это сделано видимым, или скрыто. Например, создание видимого целевого объекта анимации может заставить его быть продвинутым в представление со стороны дисплея. Анимации перехода выполняются при помощи Базовых фильтров Изображения.
Поскольку анимации перехода влияют на целевой объект анимации в целом, не необходимо указать свойство целевого объекта.
Синхронизация анимации
Полная синхронизация анимации определяется несколькими факторами: продолжительность, следование и повторяющееся поведение.
Продолжительность является отрезком времени, который анимация занимает для получения от начального или текущего состояния до целевого состояния, измеренного в секундах.
Следование анимации определяет, как интерполированные значения распределяются по продолжительности анимации. Например, анимация отдельного ключевого кадра от 0 до 5 с продолжительностью 5 секунд и линейных следующих причин промежуточное звено оценивает, чтобы быть распространенной равномерно по продолжительности. Та же анимация со следованием «EaseIn» заставляет анимацию медленно начинаться, и затем убыстряться, как развивается анимация. Анимация берет ту же продолжительность и достигает тех же значений, но когда каждое из промежуточных значений достигнуто, отличается.
Повторение анимации может быть указано двумя способами: через простое количество того, сколько раз анимация должна повторить, или путем установки продолжительности, для которой должна повториться анимация. Например, указание повторной продолжительности 15 секунд заставило бы 5-секундную анимацию повторяться три раза. Можно также указать, что анимация должна играть вперед, и с другой стороны наоборот, поскольку она повторяется.