SCNAction
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
SCNAction объект является действием, выполняющимся узлом (SCNNode). Вы используете действия чаще всего для изменения структуры и содержания узла, к которому они присоединяются, но можно также использовать действия, вносят другие изменения в сцену. В SceneKit действия обеспечивают простой способ реализовать анимированные способы поведения, часто изменяющиеся в ответ на ввод данных пользователем.
Работа с действиями
Для создания действия вызовите метод класса для действия, которым Вы интересуетесь. Затем сконфигурируйте свойства действия. Наконец, для выполнения действия вызовите объект узла runAction: метод (или похожий метод от SCNActionable протокол) и передача это объект действия.
Большинство действий позволяет Вам изменять свойства узла, такие как его позиция, вращение или масштаб. Многие из этих действий анимированы SceneKit, означая, что они изменяют свойства связанного узла больше чем по одному кадру анимации, представленной сценой. Когда действие анимировано, duration свойство утверждает, сколько времени то действие берет для завершения в секундах и timingMode свойство определяет уровень, на котором выполняется анимация. Действие speed свойство позволяет Вам корректировать синхронизацию анимации путем увеличения или уменьшения ее скорости воспроизведения.
Много действий могут быть инвертированы, позволив Вам создать другой объект действия, инвертирующий эффект того действия. Например, если объект действия перемещает узел 20 модули в положительном направлении X пространства локальной координаты его родителя, обратное действие перемещает узел 20 модули в отрицательном направлении X. Для создания обратного объекта действия вызовите объект действия reversedAction метод.
Некоторые действия включают другие действия как дочерние элементы:
Действие последовательности имеет многократные дочерние действия. Каждое действие в последовательности начинается после того, как предыдущее действие заканчивается.
Действия группы имеют многократные дочерние действия. Все действия, сохраненные в группе, начинают выполняться одновременно.
Повторяющееся действие хранит единственное дочернее действие. Когда дочернее действие завершается, оно перезапущено.
Можно вложить группы, последовательности и повторяющиеся действия. Путем объединения действий вместе, можно добавить сложные способы поведения к узлу.
Используя действия для анимации сцены
Действия легко снова используются, могут быть добавлены и удалены при выполнении, и непосредственно влиять на представленные узлы. Когда Ваша сцена часто изменяется в ответ на ввод данных пользователем — такой, создавая игру, по этим причинам действия работают хорошо. Не все элементы сцены могут быть анимированы с помощью действий. Для других видов анимации используйте неявно свойства анимированного объекта (см. SCNTransaction класс) или явно создаваемые Базовые Объекты Animation (см. SCNAnimatable протокол), или изменение график сцены непосредственно для каждого представленного кадра (см. SCNSceneRendererDelegate протокол).
Разделение на подклассы примечаний
Вы никогда не разделяете на подклассы SCNAction непосредственно. Вместо этого действия по созданию, вызывающие методы на произвольных объектах или выполняющие блоки кода. Посмотрите Пользовательские действия Создания.
-
Создает действие, перемещающее узел относительно его текущей позиции.
Объявление
Swift
class func moveByX(_deltaX: CGFloat, ydeltaY: CGFloat, zdeltaZ: CGFloat, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)moveByX:(CGFloat)deltaXy:(CGFloat)deltaYz:(CGFloat)deltaZduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, перемещающее узел относительно его текущей позиции.
Объявление
Swift
class func moveBy(_delta: SCNVector3, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)moveBy:(SCNVector3)deltaduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, перемещающее узел в новую позицию.
Объявление
Swift
class func moveTo(_location: SCNVector3, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)moveTo:(SCNVector3)locationduration:(NSTimeInterval)durationПараметры
locationКоординаты для новой позиции узла в пространстве локальной координаты ее родительского узла.
durationПродолжительность, в секундах, анимации.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел
positionсвойство анимирует от его текущей позиции до его новой позиции.Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но не перемещает узел.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, поворачивающее узел в каждой из трех основных осей углами относительно его текущей ориентации.
Объявление
Swift
class func rotateByX(_xAngle: CGFloat, yyAngle: CGFloat, zzAngle: CGFloat, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)rotateByX:(CGFloat)xAngley:(CGFloat)yAnglez:(CGFloat)zAngleduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, поворачивающее узел к абсолютным углам в каждой из трех основных осей.
Объявление
Swift
class func rotateToX(_xAngle: CGFloat, yyAngle: CGFloat, zzAngle: CGFloat, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)rotateToX:(CGFloat)xAngley:(CGFloat)yAnglez:(CGFloat)zAngleduration:(NSTimeInterval)durationПараметры
xAngleСумма для вращения узла против часовой стрелки вокруг оси X его пространства локальной координаты, в радианах.
yAngleСумма для вращения узла против часовой стрелки вокруг оси y его пространства локальной координаты, в радианах.
zAngleСумма для вращения узла против часовой стрелки вокруг оси z его пространства локальной координаты, в радианах.
durationПродолжительность, в секундах, анимации.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел
rotationсвойство анимирует к новому углу. Вызов этого метода эквивалентен вызовуrotateToX:y:z:duration:shortestUnitArc:и передачаNOfalseдляshortestUnitArcпараметр.Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, поворачивающее узел к абсолютным углам в каждой из трех основных осей.
Объявление
Swift
class func rotateToX(_xAngle: CGFloat, yyAngle: CGFloat, zzAngle: CGFloat, durationduration: NSTimeInterval, shortestUnitArcshortestUnitArc: Bool) -> SCNActionObjective C
+ (SCNAction *)rotateToX:(CGFloat)xAngley:(CGFloat)yAnglez:(CGFloat)zAngleduration:(NSTimeInterval)durationshortestUnitArc:(BOOL)shortestUnitArcПараметры
xAngleСумма для вращения узла против часовой стрелки вокруг оси X его пространства локальной координаты, в радианах.
yAngleСумма для вращения узла против часовой стрелки вокруг оси y его пространства локальной координаты, в радианах.
zAngleСумма для вращения узла против часовой стрелки вокруг оси z его пространства локальной координаты, в радианах.
durationПродолжительность, в секундах, анимации.
shortestUnitArcЕсли
NOfalse(значение по умолчанию), анимация интерполирует каждый компонент вращения узла между его текущей стоимостью и новым значением. ЕслиYEStrue, анимация делает самое прямое вращение возможным от текущей ориентации узла до новой ориентации.Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел
rotationсвойство анимирует к новому углу.Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, поворачивающее узел на угол вокруг указанной оси.
Объявление
Swift
class func rotateByAngle(_angle: CGFloat, aroundAxisaxis: SCNVector3, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)rotateByAngle:(CGFloat)anglearoundAxis:(SCNVector3)axisduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, поворачивающее узел к абсолютному углу вокруг указанной оси.
Объявление
Swift
class func rotateToAxisAngle(_axisAngle: SCNVector4, durationduration: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)rotateToAxisAngle:(SCNVector4)axisAngleduration:(NSTimeInterval)durationПараметры
axisAngleЧетырехкомпонентный вектор, чей сначала три компонента являются вектором в пространстве локальной координаты узла, указывающем ось и чей четвертый компонент является суммой для вращения узла против часовой стрелки вокруг той оси в радианах.
durationПродолжительность, в секундах, анимации.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел
rotationсвойство анимирует к новому углу.Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, унифицированно изменяющее масштабный коэффициент узла относительным значением.
Объявление
Swift
class func scaleBy(_scale: CGFloat, durationsec: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)scaleBy:(CGFloat)scaleduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, унифицированно изменяющее масштабный коэффициент узла к абсолютному значению.
Объявление
Swift
class func scaleTo(_scale: CGFloat, durationsec: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)scaleTo:(CGFloat)scaleduration:(NSTimeInterval)secПараметры
scaleНовое значение для всех трех компонентов масштаба узла.
secПродолжительность, в секундах, анимации.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел
scaleсвойство анимирует к новому значению.Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, изменяющее непрозрачность узла к
1.0.Объявление
Swift
class func fadeInWithDuration(_sec: NSTimeInterval) -> SCNActionObjective 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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, изменяющее непрозрачность узла к
0.0.Объявление
Swift
class func fadeOutWithDuration(_sec: NSTimeInterval) -> SCNActionObjective 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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, корректирующее непрозрачность узла относительным значением.
Объявление
Swift
class func fadeOpacityBy(_factor: CGFloat, durationsec: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)fadeOpacityBy:(CGFloat)factorduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, корректирующее непрозрачность узла к новому значению.
Объявление
Swift
class func fadeOpacityTo(_opacity: CGFloat, durationsec: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)fadeOpacityTo:(CGFloat)opacityduration:(NSTimeInterval)secПараметры
opacityНовое значение непрозрачности узла.
secПродолжительность, в секундах, анимации.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел
opacityсвойство анимирует к его новому значению.Это действие не обратимо; реверс этого действия имеет ту же продолжительность, но ничего не изменяет.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, удаляющее узел из его родителя.
Объявление
Swift
class func removeFromParentNode() -> SCNActionObjective C
+ (SCNAction *)removeFromParentNodeВозвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, узел сразу удален из его родителя.
Это действие не обратимо; реверс этого действия является тем же действием.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, выполняющее набор действий параллельно.
Объявление
Swift
class func group(_actions: [AnyObject]) -> SCNActionObjective C
+ (SCNAction *)group:(NSArray *)actionsПараметры
actionsМассив
SCNActionобъекты.Возвращаемое значение
Новый объект действий группы.
Обсуждение
Когда действие выполняется, действия, составляющие группу, которую все сразу запускают и выполняют параллельно. Продолжительность действий группы является самой долгой продолжительностью среди набора действий. Если действие в группе имеет продолжительность меньше, чем продолжительность группы, действие завершается и затем бездействует, пока группа не завершает остающиеся действия. Это имеет значение больше всего при создании повторяющегося действия, повторяющего группу.
Это действие обратимо; это создает новые действия группы, содержащие реверс каждого действия, указанного в группе.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, выполняющее набор действий последовательно.
Объявление
Swift
class func sequence(_actions: [AnyObject]) -> SCNActionObjective 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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, повторяющее другое действие конкретное количество времен.
Объявление
Objective C
+ (SCNAction *)repeatAction:(SCNAction *)actioncount:(NSUInteger)countПараметры
actionДействие, которое будет выполняться.
countЧисло раз для выполнения действия.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, связанные выполнения действия к завершению и затем повторяется, пока количество не достигнуто.
Это действие обратимо; это создает новое действие, которое является реверсом указанного действия и затем повторяет его то же число раз.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, повторяющее другое действие навсегда.
Объявление
Objective C
+ (SCNAction *)repeatActionForever:(SCNAction *)actionПараметры
actionДействие для выполнения.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, связанные выполнения действия к завершению и затем повторяется.
Это действие обратимо; это создает новое действие, которое является реверсом указанного действия и затем повторяет его навсегда.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, бездействующее в течение установленного периода времени.
Объявление
Swift
class func waitForDuration(_sec: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)waitForDuration:(NSTimeInterval)secПараметры
secКоличество времени для ожидания.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, действие ожидает указанного количества времени и затем заканчивается. Это обычно используется в качестве части последовательности действий для вставки задержки между двумя другими действиями. Вы могли бы также использовать его в сочетании с
runAction:completionHandler:метод для инициирования кода, который должен работать в более позднее время.Это действие не обратимо; реверс этого действия является тем же действием.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, бездействующее в течение рандомизированного промежутка времени.
Объявление
Swift
class func waitForDuration(_sec: NSTimeInterval, withRangedurationRange: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)waitForDuration:(NSTimeInterval)secwithRange:(NSTimeInterval)durationRangeПараметры
secСреднее количество времени для ожидания.
durationRangeДиапазон возможных значений в течение какого-то времени.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, действие ожидает указанного количества времени и затем заканчивается. Это обычно используется в качестве части последовательности действий для вставки задержки между двумя другими действиями. Однако Вы могли бы также использовать его в сочетании с
runAction:completionHandler:метод для инициирования кода, который должен работать в более позднее время.Каждый раз, когда действие выполняется, действие вычисляет новое случайное значение в течение какого-то времени. Продолжительность может варьироваться по любому направлению до половины значения
durationRangeпараметр.Это действие не обратимо; реверс этого действия является тем же действием.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, выполняющее блок.
Объявление
Objective C
+ (SCNAction *)runBlock:(void (^)(SCNNode *node))blockПараметры
blockБлок для выполнения. Блок берет единственный параметр:
nodeУзел, на котором работает действие.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, SceneKit вызывает блок. Это действие имеет место мгновенно.
Это действие не обратимо; обратное действие выполняет тот же блок.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, выполняющее блок на определенной очереди отгрузки.
Объявление
Swift
class func runBlock(_block: (SCNNode!) -> Void, queuequeue: dispatch_queue_t?) -> SCNActionObjective C
+ (SCNAction *)runBlock:(void (^)(SCNNode *node))blockqueue:(dispatch_queue_t)queueПараметры
blockБлок для выполнения. Блок берет единственный параметр:
nodeУзел, на котором работает действие.
queueОчередь для выполнения действия с.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, SceneKit вызывает блок. Это действие имеет место мгновенно.
Это действие не обратимо; обратное действие выполняет тот же блок.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, периодически выполняющее блок по указанной продолжительности.
Объявление
Swift
class func customActionWithDuration(_seconds: NSTimeInterval, actionBlockblock: (SCNNode!, CGFloat) -> Void) -> SCNActionObjective C
+ (SCNAction *)customActionWithDuration:(NSTimeInterval)secondsactionBlock:(void (^)(SCNNode *node, CGFloat elapsedTime))blockПараметры
secondsПродолжительность действия, в секундах.
blockБлок для выполнения. Блок берет следующие параметры:
nodeУзел, на котором работает действие.
elapsedTimeКоличество времени, передавшее начиная с действия, начало выполняться.
Возвращаемое значение
Новый объект действия.
Обсуждение
Когда действие выполняется, SceneKit неоднократно вызывает блок, пока не истекает продолжительность действия. Для каждого вызова SceneKit вычисляет прошедшее время и передает его блоку.
Это действие не обратимо; обратное действие выполняет тот же блок.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает действие, периодически выполняющее сценарий JavaScript по указанной продолжительности.
Объявление
Swift
class func javaScriptActionWithScript(_script: String, durationseconds: NSTimeInterval) -> SCNActionObjective C
+ (SCNAction *)javaScriptActionWithScript:(NSString *)scriptduration:(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Доступность
Доступный в iOS 8.0 и позже.
-
Создает действие, инвертирующее поведение другого действия.
Возвращаемое значение
Новое действие, инвертирующее поведение действия.
Обсуждение
Этот метод всегда возвращает объект действия; однако, не все действия обратимы. Когда инвертировано, некоторые действия возвращают объект, или ничего не делающий или выполняющий то же действие как исходное действие. Для получения дополнительной информации о том, как действие инвертируется, посмотрите, что описание метода класса раньше создавало то действие.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
durationСвойствоПродолжительность, требуемая завершать действие.
Объявление
Swift
var duration: NSTimeIntervalObjective C
@property(nonatomic) NSTimeInterval durationОбсуждение
Это - ожидаемая продолжительность анимации действия. Фактическое время, которое действие занимает для завершения, изменяется действием
speedсвойство.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
speedСвойствоФактор скорости, изменяющий, как быстро работает действие.
Обсуждение
Фактор скорости корректируется, как быстро работает анимация действия. Например, фактор скорости
2.0означает выполнения анимации вдвое более быстро.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
timingModeСвойствоРежим синхронизации раньше выполнял действие.
Объявление
Swift
var timingMode: SCNActionTimingModeObjective C
@property(nonatomic) SCNActionTimingMode timingModeОбсуждение
Для возможных значений посмотрите
SCNActionTimingMode. Значение по умолчаниюSCNActionTimingModeLinear.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
timingFunctionСвойствоБлок SceneKit вызывает для определения синхронизации анимации действия.
Объявление
Swift
var timingFunction: SCNActionTimingFunction?Objective C
@property(nonatomic) SCNActionTimingFunction timingFunctionОбсуждение
timingModeсвойство определяет ввод к Вашему блоку. Вы используете этот ввод для вычислений пользовательской функции синхронизации, вывод которой определяет синхронизацию анимации. Следующий пример обеспечивает квадратичную синхронизацию анимации для действия, моделируя эффект силы тяжести на падающем объекте:Swift
action.timingMode = .Linearaction.timingFunction = { time in1.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Доступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Подпись для блока, управляющего синхронизацией анимации, используемой
timingFunctionсвойство.Объявление
Swift
typealias SCNActionTimingFunction = (Float) -> FloatObjective C
typedef float (^SCNActionTimingFunction)(float time)Обсуждение
Блок берет единственный параметр:
timeЧасть действия входное значение для функции синхронизации, как определено
timingModeсвойство и текущий прогресс действия.Ваш блок должен возвратить значение с плавающей точкой между
0.0и1.0, где0.0представляет начальное состояние анимации действия и1.0представляет конечное состояние.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Константы, влияющие на кривую анимации действия, используемого
timingModeсвойство.Объявление
Swift
enum SCNActionTimingMode : Int { case Linear case EaseIn case EaseOut case EaseInEaseOut }Objective C
typedef enum : NSInteger { SCNActionTimingModeLinear, SCNActionTimingModeEaseIn, SCNActionTimingModeEaseOut, SCNActionTimingModeEaseInEaseOut } SCNActionTimingModeКонстанты
-
LinearSCNActionTimingModeLinearЛинейное следование. Анимация развивается равномерно всюду по ее продолжительности.
Доступный в iOS 8.0 и позже.
-
EaseInSCNActionTimingModeEaseInПростота - в следовании. Анимация медленно начинается, и затем убыстряется, в то время как она развивается.
Доступный в iOS 8.0 и позже.
-
EaseOutSCNActionTimingModeEaseOutСледующая простота. Анимация начинается быстро, и затем замедляется, как она завершается.
Доступный в iOS 8.0 и позже.
-
EaseInEaseOutSCNActionTimingModeEaseInEaseOutПростота - в следующей простоте. Анимация медленно начинается, ускоряется в течение середины ее продолжительности, и затем замедляется снова перед завершением.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
