继承自 NSObject
符合 NSCoding
NSCopying
NSObject
框架  /System/Library/Frameworks/SpriteKit.framework
可用性 可用于iOS 7.0或者更晚的版本
声明于 SKKeyframeSequence.h
参考指南 Sprite Kit Progamming Guide

概览

重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。

一个SKKeyframeSequence实例里面保存了粒子在每个关键帧中的值。粒子可以通过关键帧序列控制粒子的行为,替代粒子从自己的属性中取值。下面的表列出了一些必须存储在关键帧序列中的粒子属性。存储在同一个序列中的实例,必须属于同一个类。

发射器节点属性 类名
particleColorSequence SKColor
particleColorBlendFactorSequence 一个浮点值
particleScaleSequence 一个浮点值
particleAlphaSequence 一个浮点值
particleRatationSequence 一个浮点值

存储在序列中的时间值在0.0到1.0的范围内,0.0表示粒子刚刚被创建,1.0表示粒子消亡。你可以为粒子的整个生命周期提供一个关键帧的值,也可以只为部分生命周期提供。如果你选择了只覆盖粒子的部分生命周期,repeatMode属性,将告诉你如何确定一个范围外的时间值。

interpolationMode属性将告诉你如何计算两个两个关键帧之间的值。

方法

创建新的序列。

- initWithKeyframeValues:times:

通过一个初始的值和时间来初始化关键帧序列。

- (id)initWithKeyframeValues:(NSArray *)values times:(NSArray *)times

参数 values:一个保存关键帧序列值的数组
times:一个指定每个关键帧时间的数组
返回值 一个关键帧序列实例

论述

这两个数组的元素数量必须相同。新的关键帧序列将和数组元素的顺序相同。

- initWithCapacity

初始化一个新的关键帧序列。

- (id)initWithCapacity:(NSUInteger)numItems

参数 numItems:新序列的容量
返回值 一个空的关键帧序列实例

论述

这两个数组的元素数量必须相同。新的关键帧序列将和数组元素的顺序相同。

改变关键帧序列。

- addKeyframeValue:time:

为一个关键帧序列添加一个新的关键帧。

- (void)addKeyframeValue:(id)value time:(CGFloat)time

参数 value:添加到序列中的新值,必须以前面的类名相同
time:相应的时间
返回值 void

论述

一个新的关键帧将被添加到数组的末尾。

- removeKeyframeAtIndex:

从序列中删除一个关键帧。

- (void)removeKeyframeAtIndex:(NSUInteger)index

参数 index:需要删除的关键帧的数组下标
返回值 void
- removeLastKeyframe:

删除序列中的最后一个关键帧。

- (void)removeLastKeyframe

- setKeyframeTime:forIndex:

改变指定关键帧的时间。

- (void)setKeyframeTime:(CGFloat) time forIndex:(NSUInteger)index

参数 time:关键帧新的时间值
index:需要改变的关键帧的下标
返回值 void
- setKeyframeValue:forIndex:

改变指定关键帧的值。

- (void)setKeyframeValue:(id)value forIndex:(NSUInteger)index

参数 time:关键帧新的值
index:需要改变的关键帧的下标
返回值 void
- setKeyframeValue:Time:forIndex:

将序列中指定位置的关键帧替换为新的关键帧。

- (void)setKeyframeValue:(id)value time:(CGFloat)time forIndex:(NSUInteger)index

参数 value:新关键帧的值
time:新关键帧的时间
index:需要改变的关键帧的下标
返回值 void

获取序列中的一些信息。

- count

获取序列中关键帧的数量。

- (NSUInteger)count

参数  
返回值 关键帧的数量
- getKeyframeTimeForIndex

获取序列中某个关键帧的时间。

- (CGFloat)getKeyframeTimeForIndex:(NSUIteger)index

参数 index:关键帧的下标
返回值 关键帧的时间
- getKeyframeValueForIndex

获取序列中某个关键帧的值。

- (id)getKeyframeValueForIndex:(NSUIteger)index

参数 index:关键帧的下标
返回值 关键帧的值

对序列取样。

- sampleAtTime

计算特定时间的取样。

- (id)sampleAtTime:(CGFloat)time

参数 time:取样的时间值
返回值 一个包含插值的实例,实例类型与序列中的实例类型相同

属性

interpolationMode

这个属性用于决定如何计算两个关键帧之间的时间值。

@property(atomic) SKInterpolationMode interpolationMode

论述

详细值的定义参见本文档的常量部分,默认值为SKInterpolationModeLinear。

repeatMode

这个属性用于决定关键帧的重复方式。

@property(atomic) SKRepeatMode repeatMode

论述

详细值的定义参见本文档的常量部分,默认值为SKRepeatModeClamp。

常量

Interpolation Modes

两个关键帧之间插值的模式。

typedef NS_ENUM(NSInteger,

SKInterpolationMode){

SKInterpolationModeLinear = 1,

SKInterpolationModeSpline = 2,

SKInterpolationModeStep     = 3,

}

SKInterpolationModeLinear 插值模式是线性的
SKInterpolationModeSpline 差值模式是曲线的
SKInterpolationModeStep 不插值,值取自最近的关键帧
Repeat Modes

关键帧的重复模式。

typedef NS_ENUM(NSInteger,

SKRepeatMode){

SKRepeatModeClamp = 1,

SKRepeatModeLoop    = 2,

}

SKRepeatModeClamp 当取样计算时,取样的时间紧靠序列中发现的时间范围。例如,如果最后一个关键帧的时间为0.5,则在0.5到1.0时间范围内的任何取样都返回最后一个关键帧。
SKRepeatModeLoop 当取样计算时,序列循环回到序列的开头。例如,如果最后一个关键帧的时间为0.5,则在0.5到1.0时间范围内的任何取样和序列在0.0到0.5范围内的返回相同。

iOS -- SKKeyframeSequence类的更多相关文章

  1. IOS 公共类-MyDateUtil 日期处理Util

    IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...

  2. IOS 公共类-MyMBProgressUtil Progress显示

    IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...

  3. 一位iOS教育类应用开发者是如何赚到60多万美元?

    注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译.  转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...

  4. SKKeyframeSequence类

    继承自 NSObject 符合 NSCodingNSCopyingNSObject 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于 ...

  5. iOS -- SKEmitterNode类

      SKEmitterNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObje ...

  6. iOS系类教程之用instruments来检验你的app

    比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文   入门 为了节省大家的时间,提供一个演示的D ...

  7. iOS方法类:CGAffineTransform的使用大概

    CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平移操作: 另称放射变换矩阵,可参照线性代数的矩阵实现方式0. ...

  8. 006 [翻译] Haneke(一个Swfit iOS缓存类)

    Github项目地址:https://github.com/Haneke/HanekeSwift Haneke是一个用swift写成的轻量级iOS类,以简单好用著称(design-decisions- ...

  9. iOS 在类实现定义中声明成员变量的怪异方式

    WebGL 规范(WebGL Specification) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&quo ...

随机推荐

  1. vagrant中的precise64使用静态的能和host所在局域网的其他机器互相通信

    vagrant中的precise64使用静态的能和host所在局域网的其他机器互相通信

  2. 《鸟哥的Linux私房菜》学习笔记(2)——Bash特性

    一.shell的基本概念:                               shell 意思是外壳,它是离用户最近的程序.shell提供用户操作系统的接口,我们通过shell将输入的命令与 ...

  3. Mysql显示某个数据库的所有表

    显示表名: show tables; //先用use进入要查看表的库 mysql> use mysql; Database changed mysql> show tables; +--- ...

  4. Zipkin和微服务链路跟踪

    https://cloud.tencent.com/developer/article/1082821 Zipkin和微服务链路跟踪 本期分享的内容是有关zipkin和分布式跟踪的内容. 首先,我们还 ...

  5. python学习-- Django传递数据给JS

    var List = {{ List|safe }};//safe 必须存在

  6. pip 设置国内源提高速度

    临时使用: 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna. ...

  7. 深度学习:Sigmoid函数与损失函数求导

    1.sigmoid函数 ​ sigmoid函数,也就是s型曲线函数,如下: 函数: 导数: ​ 上面是我们常见的形式,虽然知道这样的形式,也知道计算流程,不够感觉并不太直观,下面来分析一下. 1.1 ...

  8. [整理]linux中颜色的含义

    蓝色(Blue): Directory  目录 绿色(Green): Executable or recognized data file  可执行文件,可执行的程序 天蓝(Sky Blue): Sy ...

  9. java面试题之Error和Exception的区别

    从概念角度分析: Error:程序无法处理的系统错误,编译器不做检查: Exception:程序可以处理的异常,捕获后可能恢复: 总结:前者是程序无法处理的错误,后者是可以处理的异常. 从责任角度分析 ...

  10. 【bzoj1191】[HNOI2006]超级英雄Hero - 二分图匹配

    现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一 ...