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范围内的返回相同。 |
SKKeyframeSequence类的更多相关文章
- iOS -- SKKeyframeSequence类
SKKeyframeSequence类 继承自 NSObject 符合 NSCodingNSCopyingNSObject 框架 /System/Library/Frameworks/SpriteK ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- iOS -- SKEmitterNode类
SKEmitterNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObje ...
- C++ 可配置的类工厂
项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core
背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
随机推荐
- System.Web.HttpContext.Current.Session获取值出错
在自定义类库CS文件里使用System.Web.HttpContext.Current.Session获取Session时提示错误:未将对象引用设置到对象的实例. 一般情况下通过这种方式获取Sessi ...
- MySQL where
MySQL where 子句 我们知道从MySQL表中使用SQL SELECT 语句来读取数据. 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中. 语法 以下是SQL ...
- c#求slope线性回归斜率
public class mySlope { // public List<double> Values { get; set; } public double SlopeResult { ...
- JFrome 登陆/注册/回显无数据库连接小程序
当离开RCP插件区重新回顾一下JFrame窗口程序的标签.页面间的跳转. 完成一个登陆.注册界面.(界面完成后练习输入输出流,将前台的注册信息保存到一个文件夹下的.txt文件中) 首先向通过JFram ...
- MYSQL :逗号分隔串表,分解成竖表
DROP TEMPORARY TABLE IF EXISTS Temp_Num ; CREATE TEMPORARY TABLE Temp_Num ( xh INT PRIMARY KEY ); -- ...
- Python list 常用操作
测试版本: python 2.7 获取第一个.最后一个元素 list1 = ["a", "b", "c"] len1 = len(list1 ...
- Git 远程仓库的管理和使用
要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库 ...
- CSS 字体描边
-webkit-text-stroke: 2px #; text-stroke: 2px #; -o-text-stroke: 2px #;
- PHP面向对象(OOP)编程完全教程:10.__set(),__get(),__isset(),__unset()四个方法的应用
一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是, 对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数”__get()”和”__set()”来获取和赋值其属性 ...
- C++ STL基本容器的使用
C++中有两种类型的容器:顺序容器和关联容器.顺序容器主要有vector.list.deque等.其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与 ...