继承自 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类的更多相关文章

  1. iOS -- SKKeyframeSequence类

    SKKeyframeSequence类 继承自 NSObject 符合 NSCodingNSCopyingNSObject 框架  /System/Library/Frameworks/SpriteK ...

  2. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  3. iOS -- SKEmitterNode类

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

  4. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

  5. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  6. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  7. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  8. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  9. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

随机推荐

  1. 织梦dede自定义内容分页,datalist运用实例

    在/plus文件夹中新建一个ceshi.php文件..<?php require(dirname(__FILE__)."/../include/common.inc.php" ...

  2. cxf webservice异步调用

    http://blog.csdn.net/changpingchen/article/details/9048347 http://www.oschina.net/question/780719_12 ...

  3. 017_bcp_bulk_openrowset

    017_bcp_bulk_openrowset --bcp*********************************************************************** ...

  4. 34.Spring-Aop.md

    http://blog.csdn.net/bigtree_3721/article/details/50759843 目录 [toc] --- 1.概念 1.1概念 AOP是Spring提供的关键特性 ...

  5. SSM框架入门和搭建 十部曲

    又快到毕业设计的时候了,有的学弟说想用ssm做毕业设计,在网上找到资料看不懂,基础差.我就帮他写了一个demo,顺便也整理一下. SSM框架,顾名思义,就是Spring+SpringMVC+mybat ...

  6. 限制窗口拉伸范围——WM_GETMINMAXINFO

    注意:此方法对CListCtrl的Report模式下的表头绘制有影响,用时需注意测试! 使用OnSizing的改进版 该例程用处为将窗口限制了大小,并且只允许上下拉伸.需要注意的是WM_GETMINM ...

  7. jQuery firefox chrome IE 绑定mousewheel事件

    $doc.on('mousewheel DOMMouseScroll',function(){ $htmlBody.stop(true); $goTop.stop(true); });

  8. 12 Integer to Roman(int转罗马数字Medium)

    题目意思:1-3999转罗马数字 思路:从大往小减 ps:这题有点蛋疼 class Solution { public: string intToRoman(int num) { string a[] ...

  9. 数据类型和Json格式[转]

    1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml. 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开. 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一 ...

  10. Linux下安装LANMP环境

    记录下来,方便下次再用时从头查找资料 首先是操作系统和php环境:CentOS 6.5 64位(之所以不是7.0是因为本身对linux不熟,而7.0改变挺大的,搜索查询资料也不好搜索),Php版本:5 ...