Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SceneKit ссылка на протокол SCNAnimatable

Опции
Развертывание Target:

На этой странице
Язык:

SCNAnimatable

SCNAnimatable протокол определяет интерфейс для присоединения анимаций к узлам, конфигурациям, материалам и другим объектам SceneKit.

SceneKit использует ту же архитектуру в качестве Базовой платформы Анимации, позволяя Вам анимировать изменения свойства неявно или явно. Для неявной анимации используйте SCNTransaction класс для быстрого создания простых анимаций с очень небольшим количеством кода. Для более сложных анимаций явно создайте CAAnimation объекты и использование методы в SCNAnimatable протокол для присоединения их к SceneKit возражает, что Вы хотите анимировать. Вы также используете методы в этом протоколе для управления любыми анимациями, уже присоединенными к объекту SceneKit.

Например, создание узла вращаться постоянно столько, сколько это появляется в графике сцены, требует явно создания повторяющейся анимации. Следующий код создает такую анимацию и присоединяет ее к узлу:

Swift

  • let rotationAnimation = CABasicAnimation(keyPath: "rotation")
  • // Animate one complete revolution around the node's Y axis.
  • rotationAnimation.toValue = NSValue(SCNVector4: SCNVector4(x: 0, y: 1, z: 0, w: 2 * CGFloat(M_PI)))
  • rotationAnimation.duration = 10.0 // One revolution in ten seconds.
  • rotationAnimation.repeatCount = Float.infinity // Repeat the animation forever.
  • node.addAnimation(rotationAnimation, forKey: nil) // Attach the animation to the node to start it.

Objective C

  • CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"rotation"];
  • // Animate one complete revolution around the node's Y axis.
  • rotationAnimation.toValue = [NSValue valueWithSCNVector4:SCNVector4Make(0, 1, 0, M_PI * 2)];
  • rotationAnimation.duration = 10.0; // One revolution in ten seconds.
  • rotationAnimation.repeatCount = FLT_MAX; // Repeat the animation forever.
  • [node addAnimation:rotationAnimation forKey:nil]; // Attach the animation to the node to start it.

Наследование


Не применимый

Соответствует


Оператор импорта


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.8 и позже.
  • Добавляет объект Animation для указанного ключа. (требуемый)

    Объявление

    Swift

    func addAnimation(_ animation: CAAnimation, forKey key: String?)

    Objective C

    - (void)addAnimation:(CAAnimation *)animation forKey:(NSString *)key

    Параметры

    animation

    Объект Animation, который будет добавлен.

    key

    Строка, идентифицирующая анимацию для более позднего извлечения. Можно передать nil если Вы не должны ссылаться на анимацию позже.

    Обсуждение

    Недавно добавленные анимации начинают выполняться после того, как текущий цикл цикла выполнения заканчивается.

    SceneKit не определяет требований для содержания key параметр — это должно только быть уникальным среди ключей для других анимаций, которые Вы добавляете. Если Вы добавляете анимацию с существующим ключом, этот метод перезаписывает существующую анимацию.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Возвращает анимацию с указанным ключом. (требуемый)

    Объявление

    Swift

    func animationForKey(_ key: String) -> CAAnimation?

    Objective C

    - (CAAnimation *)animationForKey:(NSString *)key

    Параметры

    key

    Строка, идентифицирующая ранее добавленную анимацию.

    Возвращаемое значение

    Объект Animation, соответствующий ключ, или nil если не существует никакая такая анимация.

    Обсуждение

    Попытка изменить любые свойства возвращенного объекта приводит к неопределенному поведению.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • animationKeys () - animationKeys Требуемый

    Возвращает массив, содержащий ключи всех анимаций, в настоящее время присоединяемых к объекту. (требуемый)

    Объявление

    Swift

    func animationKeys() -> [AnyObject]?

    Objective C

    - (NSArray *)animationKeys

    Возвращаемое значение

    Массив, содержащий все ключи, для которых анимации присоединены к объекту или пустому массиву, при отсутствии присоединенных анимаций.

    Обсуждение

    Упорядочивание анимации вводит возвращенный массив, произвольно.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Удаляет все анимации, в настоящее время присоединяемые к объекту. (требуемый)

    Объявление

    Swift

    func removeAllAnimations()

    Objective C

    - (void)removeAllAnimations

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Удаляет анимацию, присоединенную к объекту с указанным ключом. (требуемый)

    Объявление

    Swift

    func removeAnimationForKey(_ key: String)

    Objective C

    - (void)removeAnimationForKey:(NSString *)key

    Параметры

    key

    Строка, идентифицирующая присоединенную анимацию для удаления.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Удаляет анимацию, присоединенную к объекту с указанным ключом, гладко переходящим из эффекта анимации. (требуемый)

    Объявление

    Swift

    func removeAnimationForKey(_ key: String, fadeOutDuration duration: CGFloat)

    Objective C

    - (void)removeAnimationForKey:(NSString *)key fadeOutDuration:(CGFloat)duration

    Параметры

    key

    Строка, идентифицирующая присоединенную анимацию для удаления.

    duration

    Продолжительность для перехода из эффекта анимации, прежде чем это будет удалено.

    Обсуждение

    Используйте этот метод для создания плавных переходов между эффектами многократных анимаций. Например, геометрия, загруженная из файла сцены для игрового символа, возможно, связала анимации для действий проигрывателя, таких как обход и переход. Когда проигрыватель приземляется от перехода, Вы удаляете анимацию перехода, таким образом, символ продолжает идти. Если Вы используете removeAnimationForKey: метод для удаления анимации перехода SceneKit резко переключается от текущего кадра анимации перехода к текущему кадру анимации обхода. Если Вы используете removeAnimationForKey:fadeOutDuration: метод вместо этого, SceneKit играет обе анимации сразу во время той продолжительности и интерполирует позиции вершины от одной анимации до другого, создавая плавный переход.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Приостанавливает анимацию, присоединенную к объекту с указанным ключом. (требуемый)

    Объявление

    Swift

    func pauseAnimationForKey(_ key: String)

    Objective C

    - (void)pauseAnimationForKey:(NSString *)key

    Параметры

    key

    Строка, идентифицирующая присоединенную анимацию.

    Обсуждение

    Если никакая анимация не присоединена к объекту с указанным ключом, этот метод не имеет никакого эффекта.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возобновляет ранее приостановленную анимацию, присоединенную к объекту с указанным ключом. (требуемый)

    Объявление

    Swift

    func resumeAnimationForKey(_ key: String)

    Objective C

    - (void)resumeAnimationForKey:(NSString *)key

    Параметры

    key

    Строка, идентифицирующая присоединенную анимацию.

    Обсуждение

    Этот метод не имеет никакого эффекта, если никакая анимация не присоединена к объекту с указанным ключом или если в настоящее время не приостанавливается указанная анимация.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Возвращает булево значение, указывающее, приостанавливается ли анимация, присоединенная к объекту с указанным ключом. (требуемый)

    Объявление

    Swift

    func isAnimationForKeyPaused(_ key: String) -> Bool

    Objective C

    - (BOOL)isAnimationForKeyPaused:(NSString *)key

    Параметры

    key

    Строка, идентифицирующая присоединенную анимацию.

    Возвращаемое значение

    YEStrue если приостанавливается указанная анимация. NOfalse если анимация работает, или никакая анимация не присоединена к объекту с тем ключом.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.