适用于 UIKit 和 Sparrow 2.1。
Flump 的目的是减少动画占用的纹理内存。
在这个示例中,我们取了一个需要 40 个纹理的动画,将其降低到只使用 5 个纹理。所有这些,都是 Flump 的强大功能。
如果您想了解更多关于 Flump 的信息,可以在此处了解更多信息
http://threerings.github.io/flump
https://github.com/tconkling/flump/wiki
在这个示例中,我们有一个长度为 40 帧的动画。
渲染此动画的传统方法是将 40 个纹理保存到内存中,并在每一帧都显示一个纹理。就像一本翻页书一样。然而,保存 40 个纹理并不十分高效。这时 Flump 就派上用场了。
当 Flump 导出 SWF 文件时,它会做两件事。
所以在这个示例中,我们有一个由 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">
FLMPExport *flumpExportSparrow = [[FLMPExport alloc] initWithFlumpXMLFileName:@"test3" atlasClass:[FLMPSPAtlas class]];
FLMPSPDisplayObject *flumpDisplayObject = [[FLMPSPDisplayObject alloc] initWithFlumpExport:flumpExportSparrow movieName:@"test3_movie"];
[stage addChild:flumpDisplayObject];
[flumpDisplayObject play];
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 上进行过测试。