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

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

Разработчик

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

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

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

SCNAction

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

Работа с действиями

Для создания действия вызовите метод класса для действия, которым Вы интересуетесь. Затем сконфигурируйте свойства действия. Наконец, для выполнения действия вызовите объект узла runAction: метод (или похожий метод от SCNActionable протокол) и передача это объект действия.

Большинство действий позволяет Вам изменять свойства узла, такие как его позиция, вращение или масштаб. Многие из этих действий анимированы SceneKit, означая, что они изменяют свойства связанного узла больше чем по одному кадру анимации, представленной сценой. Когда действие анимировано, duration свойство утверждает, сколько времени то действие берет для завершения в секундах и timingMode свойство определяет уровень, на котором выполняется анимация. Действие speed свойство позволяет Вам корректировать синхронизацию анимации путем увеличения или уменьшения ее скорости воспроизведения.

Много действий могут быть инвертированы, позволив Вам создать другой объект действия, инвертирующий эффект того действия. Например, если объект действия перемещает узел 20 модули в положительном направлении X пространства локальной координаты его родителя, обратное действие перемещает узел 20 модули в отрицательном направлении X. Для создания обратного объекта действия вызовите объект действия reversedAction метод.

Некоторые действия включают другие действия как дочерние элементы:

  • Действие последовательности имеет многократные дочерние действия. Каждое действие в последовательности начинается после того, как предыдущее действие заканчивается.

  • Действия группы имеют многократные дочерние действия. Все действия, сохраненные в группе, начинают выполняться одновременно.

  • Повторяющееся действие хранит единственное дочернее действие. Когда дочернее действие завершается, оно перезапущено.

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

Используя действия для анимации сцены

Действия легко снова используются, могут быть добавлены и удалены при выполнении, и непосредственно влиять на представленные узлы. Когда Ваша сцена часто изменяется в ответ на ввод данных пользователем — такой, создавая игру, по этим причинам действия работают хорошо. Не все элементы сцены могут быть анимированы с помощью действий. Для других видов анимации используйте неявно свойства анимированного объекта (см. SCNTransaction класс) или явно создаваемые Базовые Объекты Animation (см. SCNAnimatable протокол), или изменение график сцены непосредственно для каждого представленного кадра (см. SCNSceneRendererDelegate протокол).

Разделение на подклассы примечаний

Вы никогда не разделяете на подклассы SCNAction непосредственно. Вместо этого действия по созданию, вызывающие методы на произвольных объектах или выполняющие блоки кода. Посмотрите Пользовательские действия Создания.

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Создает действие, перемещающее узел относительно его текущей позиции.

    Объявление

    Swift

    class func moveByX(_ deltaX: CGFloat, y deltaY: CGFloat, z deltaZ: CGFloat, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)moveByX:(CGFloat)deltaX y:(CGFloat)deltaY z:(CGFloat)deltaZ duration:(NSTimeInterval)duration

    Параметры

    deltaX

    Расстояние для перемещения узла в направление X пространства локальной координаты его родительского узла.

    deltaY

    Расстояние для перемещения узла в направление Y пространства локальной координаты его родительского узла.

    deltaZ

    Расстояние для перемещения узла в направление Z пространства локальной координаты его родительского узла.

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел position свойство анимирует от его текущей позиции до его новой позиции.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.moveByX(-deltaX, y: -deltaY, z: -deltaZ, duration: duration)

    Objective C

    • [SCNAction moveByX: -deltaX y: -deltaY z: -deltaZ duration: duration];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, перемещающее узел относительно его текущей позиции.

    Объявление

    Swift

    class func moveBy(_ delta: SCNVector3, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)moveBy:(SCNVector3)delta duration:(NSTimeInterval)duration

    Параметры

    delta

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

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел position свойство анимирует от его текущей позиции до его новой позиции.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • let reverseDelta = SCNVector3(x: -delta.x, y: -delta.y, z: -delta.z)
    • SCNAction.moveBy(reverseDelta, duration: duration)

    Objective C

    • SCNVector3 reverseDelta = SCNVector3Make(-delta.x, -delta.y, -delta.z);
    • [SCNAction moveBy: reverseDelta duration: duration];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, перемещающее узел в новую позицию.

    Объявление

    Swift

    class func moveTo(_ location: SCNVector3, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)moveTo:(SCNVector3)location duration:(NSTimeInterval)duration

    Параметры

    location

    Координаты для новой позиции узла в пространстве локальной координаты ее родительского узла.

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел position свойство анимирует от его текущей позиции до его новой позиции.

    Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но не перемещает узел.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, поворачивающее узел в каждой из трех основных осей углами относительно его текущей ориентации.

    Объявление

    Swift

    class func rotateByX(_ xAngle: CGFloat, y yAngle: CGFloat, z zAngle: CGFloat, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)rotateByX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration

    Параметры

    xAngle

    Сумма для вращения узла против часовой стрелки вокруг оси X его пространства локальной координаты, в радианах.

    yAngle

    Сумма для вращения узла против часовой стрелки вокруг оси y его пространства локальной координаты, в радианах.

    zAngle

    Сумма для вращения узла против часовой стрелки вокруг оси z его пространства локальной координаты, в радианах.

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел rotation свойство анимирует к новому углу.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.rotateByX(-xAngle, y: -yAngle, z: -zAngle, duration: sec)

    Objective C

    • [SCNAction rotateByX: -xAngle y: -yAngle z: -zAngle duration: duration];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, поворачивающее узел к абсолютным углам в каждой из трех основных осей.

    Объявление

    Swift

    class func rotateToX(_ xAngle: CGFloat, y yAngle: CGFloat, z zAngle: CGFloat, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)rotateToX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration

    Параметры

    xAngle

    Сумма для вращения узла против часовой стрелки вокруг оси X его пространства локальной координаты, в радианах.

    yAngle

    Сумма для вращения узла против часовой стрелки вокруг оси y его пространства локальной координаты, в радианах.

    zAngle

    Сумма для вращения узла против часовой стрелки вокруг оси z его пространства локальной координаты, в радианах.

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел rotation свойство анимирует к новому углу. Вызов этого метода эквивалентен вызову rotateToX:y:z:duration:shortestUnitArc: и передача NOfalse для shortestUnitArc параметр.

    Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, поворачивающее узел к абсолютным углам в каждой из трех основных осей.

    Объявление

    Swift

    class func rotateToX(_ xAngle: CGFloat, y yAngle: CGFloat, z zAngle: CGFloat, duration duration: NSTimeInterval, shortestUnitArc shortestUnitArc: Bool) -> SCNAction

    Objective C

    + (SCNAction *)rotateToX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration shortestUnitArc:(BOOL)shortestUnitArc

    Параметры

    xAngle

    Сумма для вращения узла против часовой стрелки вокруг оси X его пространства локальной координаты, в радианах.

    yAngle

    Сумма для вращения узла против часовой стрелки вокруг оси y его пространства локальной координаты, в радианах.

    zAngle

    Сумма для вращения узла против часовой стрелки вокруг оси z его пространства локальной координаты, в радианах.

    duration

    Продолжительность, в секундах, анимации.

    shortestUnitArc

    Если NOfalse (значение по умолчанию), анимация интерполирует каждый компонент вращения узла между его текущей стоимостью и новым значением. Если YEStrue, анимация делает самое прямое вращение возможным от текущей ориентации узла до новой ориентации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел rotation свойство анимирует к новому углу.

    Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, поворачивающее узел на угол вокруг указанной оси.

    Объявление

    Swift

    class func rotateByAngle(_ angle: CGFloat, aroundAxis axis: SCNVector3, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)rotateByAngle:(CGFloat)angle aroundAxis:(SCNVector3)axis duration:(NSTimeInterval)duration

    Параметры

    angle

    Сумма для вращения узла против часовой стрелки вокруг указанной оси, в радианах.

    axis

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

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел rotation свойство анимирует к новому углу.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.rotateByAngle(-angle, aroundAxis: axis, duration: sec)

    Objective C

    • [SCNAction rotateByAngle: -angle aroundAxis: axis duration: sec];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, поворачивающее узел к абсолютному углу вокруг указанной оси.

    Объявление

    Swift

    class func rotateToAxisAngle(_ axisAngle: SCNVector4, duration duration: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)rotateToAxisAngle:(SCNVector4)axisAngle duration:(NSTimeInterval)duration

    Параметры

    axisAngle

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

    duration

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел rotation свойство анимирует к новому углу.

    Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    class func scaleBy(_ scale: CGFloat, duration sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)scaleBy:(CGFloat)scale duration:(NSTimeInterval)sec

    Параметры

    scale

    Сумма изменения для создания ко всем трем компонентам масштаба узла.

    sec

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел scale свойство анимирует к новому значению.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.scaleBy(-scale, duration: sec)

    Objective C

    • [SCNAction scaleBy: -scale duration: sec];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, унифицированно изменяющее масштабный коэффициент узла к абсолютному значению.

    Объявление

    Swift

    class func scaleTo(_ scale: CGFloat, duration sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)scaleTo:(CGFloat)scale duration:(NSTimeInterval)sec

    Параметры

    scale

    Новое значение для всех трех компонентов масштаба узла.

    sec

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел scale свойство анимирует к новому значению.

    Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, изменяющее непрозрачность узла к 1.0.

    Объявление

    Swift

    class func fadeInWithDuration(_ sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)fadeInWithDuration:(NSTimeInterval)sec

    Параметры

    sec

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел opacity свойство анимирует от его текущей стоимости до 1.0.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.fadeOutWithDuration(sec)

    Objective C

    • [SCNAction fadeOutWithDuration: sec];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, изменяющее непрозрачность узла к 0.0.

    Объявление

    Swift

    class func fadeOutWithDuration(_ sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)fadeOutWithDuration:(NSTimeInterval)sec

    Параметры

    sec

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел opacity свойство анимирует от его текущей стоимости до 0.0.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.fadeInWithDuration(sec)

    Objective C

    • [SCNAction fadeInWithDuration: sec];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    class func fadeOpacityBy(_ factor: CGFloat, duration sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)fadeOpacityBy:(CGFloat)factor duration:(NSTimeInterval)sec

    Параметры

    factor

    Сумма для изменения непрозрачности узла.

    sec

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел opacity свойство анимирует к его новому значению.

    Это действие обратимо; реверс создается, как будто был выполнен следующий код:

    Swift

    • SCNAction.fadeOpacityBy(-factor, duration: sec)

    Objective C

    • [SCNAction fadeOpacityBy: -factor duration: sec];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, корректирующее непрозрачность узла к новому значению.

    Объявление

    Swift

    class func fadeOpacityTo(_ opacity: CGFloat, duration sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)fadeOpacityTo:(CGFloat)opacity duration:(NSTimeInterval)sec

    Параметры

    opacity

    Новое значение непрозрачности узла.

    sec

    Продолжительность, в секундах, анимации.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел opacity свойство анимирует к его новому значению.

    Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, удаляющее узел из его родителя.

    Объявление

    Swift

    class func removeFromParentNode() -> SCNAction

    Objective C

    + (SCNAction *)removeFromParentNode

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, узел сразу удален из его родителя.

    Это действие не обратимо; реверс этого действия является тем же действием.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, выполняющее набор действий параллельно.

    Объявление

    Swift

    class func group(_ actions: [AnyObject]) -> SCNAction

    Objective C

    + (SCNAction *)group:(NSArray *)actions

    Параметры

    actions

    Массив SCNAction объекты.

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

    Новый объект действий группы.

    Обсуждение

    Когда действие выполняется, действия, составляющие группу, которую все сразу запускают и выполняют параллельно. Продолжительность действий группы является самой долгой продолжительностью среди набора действий. Если действие в группе имеет продолжительность меньше, чем продолжительность группы, действие завершается и затем бездействует, пока группа не завершает остающиеся действия. Это имеет значение больше всего при создании повторяющегося действия, повторяющего группу.

    Это действие обратимо; это создает новые действия группы, содержащие реверс каждого действия, указанного в группе.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, выполняющее набор действий последовательно.

    Объявление

    Swift

    class func sequence(_ actions: [AnyObject]) -> SCNAction

    Objective C

    + (SCNAction *)sequence:(NSArray *)actions

    Параметры

    actions

    Массив SCNAction объекты.

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

    Новый объект действия последовательности.

    Обсуждение

    Когда действие выполняется, первое действие в последовательности запускается и работает к завершению. Последующие действия в последовательности, выполненной подобным способом до всех действий в последовательности, выполнились. Продолжительность действия последовательности является суммой продолжительностей действий в последовательности.

    Это действие обратимо; это создает новое действие последовательности, инвертирующее порядок действий. Каждое действие в обратной последовательности самостоятельно инвертируется. Например, действия reverseSequence и sequenceReverse в примере кода ниже эквивалентны:

    Swift

    • let sequence = SCNAction.sequence([actionA, actionB, actionC])
    • let reverseSequence = SCNAction.sequence([
    • actionC.reversedAction(),
    • actionB.reversedAction(),
    • actionA.reversedAction() ])
    • let sequeceReverse = sequence.reversedAction()

    Objective C

    • SCNAction *sequence = [SCNAction sequence:@[ actionA, actionB, actionC ]];
    • SCNAction *reverseSequence = [SCNAction sequence:@[ [actionC reversedAction],
    • [actionB reversedAction],
    • [actionA reversedAction] ]];
    • SCNAction *sequenceReverse = [sequence reversedAction];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, повторяющее другое действие конкретное количество времен.

    Объявление

    Swift

    class func repeatAction(_ action: SCNAction, count count: Int) -> SCNAction

    Objective C

    + (SCNAction *)repeatAction:(SCNAction *)action count:(NSUInteger)count

    Параметры

    action

    Действие, которое будет выполняться.

    count

    Число раз для выполнения действия.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, связанные выполнения действия к завершению и затем повторяется, пока количество не достигнуто.

    Это действие обратимо; это создает новое действие, которое является реверсом указанного действия и затем повторяет его то же число раз.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, повторяющее другое действие навсегда.

    Объявление

    Swift

    class func repeatActionForever(_ action: SCNAction) -> SCNAction

    Objective C

    + (SCNAction *)repeatActionForever:(SCNAction *)action

    Параметры

    action

    Действие для выполнения.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, связанные выполнения действия к завершению и затем повторяется.

    Это действие обратимо; это создает новое действие, которое является реверсом указанного действия и затем повторяет его навсегда.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, бездействующее в течение установленного периода времени.

    Объявление

    Swift

    class func waitForDuration(_ sec: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)waitForDuration:(NSTimeInterval)sec

    Параметры

    sec

    Количество времени для ожидания.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, действие ожидает указанного количества времени и затем заканчивается. Это обычно используется в качестве части последовательности действий для вставки задержки между двумя другими действиями. Вы могли бы также использовать его в сочетании с runAction:completionHandler: метод для инициирования кода, который должен работать в более позднее время.

    Это действие не обратимо; реверс этого действия является тем же действием.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, бездействующее в течение рандомизированного промежутка времени.

    Объявление

    Swift

    class func waitForDuration(_ sec: NSTimeInterval, withRange durationRange: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)waitForDuration:(NSTimeInterval)sec withRange:(NSTimeInterval)durationRange

    Параметры

    sec

    Среднее количество времени для ожидания.

    durationRange

    Диапазон возможных значений в течение какого-то времени.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, действие ожидает указанного количества времени и затем заканчивается. Это обычно используется в качестве части последовательности действий для вставки задержки между двумя другими действиями. Однако Вы могли бы также использовать его в сочетании с runAction:completionHandler: метод для инициирования кода, который должен работать в более позднее время.

    Каждый раз, когда действие выполняется, действие вычисляет новое случайное значение в течение какого-то времени. Продолжительность может варьироваться по любому направлению до половины значения durationRange параметр.

    Это действие не обратимо; реверс этого действия является тем же действием.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, выполняющее блок.

    Объявление

    Swift

    class func runBlock(_ block: (SCNNode!) -> Void) -> SCNAction

    Objective C

    + (SCNAction *)runBlock:(void (^)(SCNNode *node))block

    Параметры

    block

    Блок для выполнения. Блок берет единственный параметр:

    node

    Узел, на котором работает действие.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, SceneKit вызывает блок. Это действие имеет место мгновенно.

    Это действие не обратимо; обратное действие выполняет тот же блок.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, выполняющее блок на определенной очереди отгрузки.

    Объявление

    Swift

    class func runBlock(_ block: (SCNNode!) -> Void, queue queue: dispatch_queue_t?) -> SCNAction

    Objective C

    + (SCNAction *)runBlock:(void (^)(SCNNode *node))block queue:(dispatch_queue_t)queue

    Параметры

    block

    Блок для выполнения. Блок берет единственный параметр:

    node

    Узел, на котором работает действие.

    queue

    Очередь для выполнения действия с.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, SceneKit вызывает блок. Это действие имеет место мгновенно.

    Это действие не обратимо; обратное действие выполняет тот же блок.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, периодически выполняющее блок по указанной продолжительности.

    Объявление

    Swift

    class func customActionWithDuration(_ seconds: NSTimeInterval, actionBlock block: (SCNNode!, CGFloat) -> Void) -> SCNAction

    Objective C

    + (SCNAction *)customActionWithDuration:(NSTimeInterval)seconds actionBlock:(void (^)(SCNNode *node, CGFloat elapsedTime))block

    Параметры

    seconds

    Продолжительность действия, в секундах.

    block

    Блок для выполнения. Блок берет следующие параметры:

    node

    Узел, на котором работает действие.

    elapsedTime

    Количество времени, передавшее начиная с действия, начало выполняться.

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

    Новый объект действия.

    Обсуждение

    Когда действие выполняется, SceneKit неоднократно вызывает блок, пока не истекает продолжительность действия. Для каждого вызова SceneKit вычисляет прошедшее время и передает его блоку.

    Это действие не обратимо; обратное действие выполняет тот же блок.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, периодически выполняющее сценарий JavaScript по указанной продолжительности.

    Объявление

    Swift

    class func javaScriptActionWithScript(_ script: String, duration seconds: NSTimeInterval) -> SCNAction

    Objective C

    + (SCNAction *)javaScriptActionWithScript:(NSString *)script duration:(NSTimeInterval)seconds

    Параметры

    script

    Строка, содержащая исходный код JavaScript.

    seconds

    Продолжительность действия, в секундах.

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

    Новый объект действия.

    Обсуждение

    SceneKit представляет свои классы, методы, и функционирует в контексте JavaScript, работающем, сценарий — посмотрите SCNJavaScript.h заголовочный файл для подробных данных.

    Когда действие выполняется, SceneKit неоднократно выполняет сценарий, пока не истекает продолжительность действия. Каждый раз, когда SceneKit выполняет сценарий, он вычисляет прошедшее время, так как действие начало выполняться (как часть продолжительности действия между 0.0 и 1.0) и делает его доступным для сценария как переменная названный elapsedTime. Сценарий может также сослаться SCNNode объект, выполняющий действие как переменная, называют node.

    Это действие не обратимо; обратное действие выполняет тот же сценарий.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает действие, инвертирующее поведение другого действия.

    Объявление

    Swift

    func reversedAction() -> SCNAction

    Objective C

    - (SCNAction *)reversedAction

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

    Новое действие, инвертирующее поведение действия.

    Обсуждение

    Этот метод всегда возвращает объект действия; однако, не все действия обратимы. Когда инвертировано, некоторые действия возвращают объект, или ничего не делающий или выполняющий то же действие как исходное действие. Для получения дополнительной информации о том, как действие инвертируется, посмотрите, что описание метода класса раньше создавало то действие.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Продолжительность, требуемая завершать действие.

    Объявление

    Swift

    var duration: NSTimeInterval

    Objective C

    @property(nonatomic) NSTimeInterval duration

    Обсуждение

    Это - ожидаемая продолжительность анимации действия. Фактическое время, которое действие занимает для завершения, изменяется действием speed свойство.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Фактор скорости, изменяющий, как быстро работает действие.

    Объявление

    Swift

    var speed: CGFloat

    Objective C

    @property(nonatomic) CGFloat speed

    Обсуждение

    Фактор скорости корректируется, как быстро работает анимация действия. Например, фактор скорости 2.0 означает выполнения анимации вдвое более быстро.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • timingMode timingMode Свойство

    Режим синхронизации раньше выполнял действие.

    Объявление

    Swift

    var timingMode: SCNActionTimingMode

    Objective C

    @property(nonatomic) SCNActionTimingMode timingMode

    Обсуждение

    Для возможных значений посмотрите SCNActionTimingMode. Значение по умолчанию SCNActionTimingModeLinear.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • timingFunction timingFunction Свойство

    Блок SceneKit вызывает для определения синхронизации анимации действия.

    Объявление

    Swift

    var timingFunction: SCNActionTimingFunction?

    Objective C

    @property(nonatomic) SCNActionTimingFunction timingFunction

    Обсуждение

    timingMode свойство определяет ввод к Вашему блоку. Вы используете этот ввод для вычислений пользовательской функции синхронизации, вывод которой определяет синхронизацию анимации. Следующий пример обеспечивает квадратичную синхронизацию анимации для действия, моделируя эффект силы тяжести на падающем объекте:

    Swift

    • action.timingMode = .Linear
    • action.timingFunction = { time in
    • 1.0 - time * time
    • }

    Objective C

    • action.timingMode = SCNActionTimingModeLinear;
    • action.timingFunction = ^float(float time) {
    • return 1.0 - time*time;
    • };

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

Типы данных

  • Подпись для блока, управляющего синхронизацией анимации, используемой timingFunction свойство.

    Объявление

    Swift

    typealias SCNActionTimingFunction = (Float) -> Float

    Objective C

    typedef float (^SCNActionTimingFunction)(float time)

    Обсуждение

    Блок берет единственный параметр:

    time

    Часть действия входное значение для функции синхронизации, как определено timingMode свойство и текущий прогресс действия.

    Ваш блок должен возвратить значение с плавающей точкой между 0.0 и 1.0, где 0.0 представляет начальное состояние анимации действия и 1.0 представляет конечное состояние.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Константы, влияющие на кривую анимации действия, используемого timingMode свойство.

    Объявление

    Swift

    enum SCNActionTimingMode : Int { case Linear case EaseIn case EaseOut case EaseInEaseOut }

    Objective C

    typedef enum : NSInteger { SCNActionTimingModeLinear, SCNActionTimingModeEaseIn, SCNActionTimingModeEaseOut, SCNActionTimingModeEaseInEaseOut } SCNActionTimingMode

    Константы

    • Linear

      SCNActionTimingModeLinear

      Линейное следование. Анимация развивается равномерно всюду по ее продолжительности.

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

    • EaseIn

      SCNActionTimingModeEaseIn

      Простота - в следовании. Анимация медленно начинается, и затем убыстряется, в то время как она развивается.

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

    • EaseOut

      SCNActionTimingModeEaseOut

      Следующая простота. Анимация начинается быстро, и затем замедляется, как она завершается.

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

    • EaseInEaseOut

      SCNActionTimingModeEaseInEaseOut

      Простота - в следующей простоте. Анимация медленно начинается, ускоряется в течение середины ее продолжительности, и затем замедляется снова перед завершением.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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