FlumpOBJC 1.2.1

FlumpOBJC 1.2.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年9月

FlumpOBJC维护。



FlumpOBJC 1.2.1

  • levieggert

Flump Objective-C 运行时

适用于 UIKit 和 Sparrow 2.1。

什么是 Flump?

Flump 的目的是减少动画占用的纹理内存。

在这个示例中,我们取了一个需要 40 个纹理的动画,将其降低到只使用 5 个纹理。所有这些,都是 Flump 的强大功能。

如果您想了解更多关于 Flump 的信息,可以在此处了解更多信息

http://threerings.github.io/flump

https://github.com/tconkling/flump/wiki

它是如何工作的?

在这个示例中,我们有一个长度为 40 帧的动画。

渲染此动画的传统方法是将 40 个纹理保存到内存中,并在每一帧都显示一个纹理。就像一本翻页书一样。然而,保存 40 个纹理并不十分高效。这时 Flump 就派上用场了。

当 Flump 导出 SWF 文件时,它会做两件事。

  1. 将所需的所有纹理放入纹理图集中。
  2. 输出一些数据,这些数据包含有关动画的关键帧信息。每个关键帧都包含从导出的纹理集中创建子纹理所需的信息,以及渲染帧时应应用到该纹理上的转换。

所以在这个示例中,我们有一个由 Flump 导出的纹理集和一个从该集创建的 4 个子纹理。在运行时,我们显示一个纹理,并应用适当的转换以渲染动画帧。

这已经将我们的纹理总数减少到 5 个!

常见错误

请务必检查图集文件属性与导出的图集.png 文件匹配。有时此文件属性将包括一个路径。根据您如何将图集.png 添加到 Xcode,您可能需要更新此字段以正确加载图集。

图集将使用 imageName 载入到 UIImages 中。

例:test3.xml

<atlas file="test3.png">
    <texture name="test3/box3" rect="1,1,61,61" origin="30.5,30.5"/>
    <texture name="test3/box" rect="65,1,61,61" origin="0.5,0.5"/>
    <texture name="test3/box2" rect="1,64,31,31" origin="15.5,15.5"/>
    <texture name="test3/marker" rect="34,64,11,11" origin="5.5,5.5"/>
</atlas>

您还可以在 XML 中编辑电影名称。

例:test3.xml

<movie name="test3_movie" frameRate="24">

导出 Flash SWF 到 Flump 应用程序的说明

  1. 您的 Flash 动画应该是导出为 Flash 的 MovieClip 符号,并将其放置在舞台的第 1 帧。
  2. 动画中的所有图层都应该导出为 Flash 作为精灵。

创建一个 FLMPSPDisplayObject - Sparrow

FLMPExport *flumpExportSparrow = [[FLMPExport alloc] initWithFlumpXMLFileName:@"test3" atlasClass:[FLMPSPAtlas class]];
FLMPSPDisplayObject *flumpDisplayObject = [[FLMPSPDisplayObject alloc] initWithFlumpExport:flumpExportSparrow movieName:@"test3_movie"];

[stage addChild:flumpDisplayObject];

[flumpDisplayObject play];

创建一个 FLMPView - UIKit

FLMPExport *flumpExportUIKit = [[FLMPExport alloc] initWithFlumpXMLFileName:@"test3" atlasClass:[FLMPUIAtlas class]];
FLMPView *flumpView = [[FLMPView alloc] initWithFlumpExport:flumpExportUIKit movieName:@"test3_movie"];

[self.view addSubview:flumpView];

[flumpView play];

注意事项

在 iOS 7 和 Sparrow 2.1 上进行过测试。