iOS -- SKKeyframeSequence类
| 继承自 | 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类的更多相关文章
- IOS 公共类-MyDateUtil 日期处理Util
IOS 公共类-MyDateUtil 日期处理Util 此为处理日期的公共类.适用IOS6+ .h文件: #import <Foundation/Foundation.h> //适用 IO ...
- IOS 公共类-MyMBProgressUtil Progress显示
IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...
- 一位iOS教育类应用开发者是如何赚到60多万美元?
注:伯乐在线12月19日在@程序员的那些事 微博推荐了此文的英文原文,非常感谢@dotSlash 的翻译. 转眼距我写<我如何在iOS教育类应用中赚到20万美元>这篇博文已经一年多了,它 ...
- SKKeyframeSequence类
继承自 NSObject 符合 NSCodingNSCopyingNSObject 框架 /System/Library/Frameworks/SpriteKit.framework 可用性 可用于 ...
- iOS -- SKEmitterNode类
SKEmitterNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObje ...
- iOS系类教程之用instruments来检验你的app
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程.这里是原文 入门 为了节省大家的时间,提供一个演示的D ...
- iOS方法类:CGAffineTransform的使用大概
CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平移操作: 另称放射变换矩阵,可参照线性代数的矩阵实现方式0. ...
- 006 [翻译] Haneke(一个Swfit iOS缓存类)
Github项目地址:https://github.com/Haneke/HanekeSwift Haneke是一个用swift写成的轻量级iOS类,以简单好用著称(design-decisions- ...
- iOS 在类实现定义中声明成员变量的怪异方式
WebGL 规范(WebGL Specification) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&quo ...
随机推荐
- vagrant中的precise64使用静态的能和host所在局域网的其他机器互相通信
vagrant中的precise64使用静态的能和host所在局域网的其他机器互相通信
- 《鸟哥的Linux私房菜》学习笔记(2)——Bash特性
一.shell的基本概念: shell 意思是外壳,它是离用户最近的程序.shell提供用户操作系统的接口,我们通过shell将输入的命令与 ...
- Mysql显示某个数据库的所有表
显示表名: show tables; //先用use进入要查看表的库 mysql> use mysql; Database changed mysql> show tables; +--- ...
- Zipkin和微服务链路跟踪
https://cloud.tencent.com/developer/article/1082821 Zipkin和微服务链路跟踪 本期分享的内容是有关zipkin和分布式跟踪的内容. 首先,我们还 ...
- python学习-- Django传递数据给JS
var List = {{ List|safe }};//safe 必须存在
- pip 设置国内源提高速度
临时使用: 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna. ...
- 深度学习:Sigmoid函数与损失函数求导
1.sigmoid函数 sigmoid函数,也就是s型曲线函数,如下: 函数: 导数: 上面是我们常见的形式,虽然知道这样的形式,也知道计算流程,不够感觉并不太直观,下面来分析一下. 1.1 ...
- [整理]linux中颜色的含义
蓝色(Blue): Directory 目录 绿色(Green): Executable or recognized data file 可执行文件,可执行的程序 天蓝(Sky Blue): Sy ...
- java面试题之Error和Exception的区别
从概念角度分析: Error:程序无法处理的系统错误,编译器不做检查: Exception:程序可以处理的异常,捕获后可能恢复: 总结:前者是程序无法处理的错误,后者是可以处理的异常. 从责任角度分析 ...
- 【bzoj1191】[HNOI2006]超级英雄Hero - 二分图匹配
现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一 ...