我有一个三秒的 PNG 序列(徽标动画),我想在我的 iOS 应用程序启动后立即显示。由于这是应用程序中唯一的动画序列,我不想使用 Cocos2D。
但是使用 UIImageViewanimationImages
时,应用程序在 iPod Touch 设备上会耗尽内存。
是否有更多的记忆意识/有效的方式来显示这个动画?也许是一个不涉及 Cocos2D 的精灵表类?或者是其他东西?
我有一个三秒的 PNG 序列(徽标动画),我想在我的 iOS 应用程序启动后立即显示。由于这是应用程序中唯一的动画序列,我不想使用 Cocos2D。
但是使用 UIImageViewanimationImages
时,应用程序在 iPod Touch 设备上会耗尽内存。
是否有更多的记忆意识/有效的方式来显示这个动画?也许是一个不涉及 Cocos2D 的精灵表类?或者是其他东西?
如果这是一个动画闪屏或类似画面,请注意 HIG 不赞成这种行为(至少在全屏游戏之外)。
如果您没有被这些论点吓倒(或制作游戏),您可能会考虑将动画保存为 MPEG-4 视频并MPMoviePlayerController
用于呈现它。使用一个好的压缩器,应该可以将大小和内存使用量降低很多,并且仍然具有高质量的徽标动画。
我怀疑你会以任何其他方式找到很大的改进——例如,精灵表仍然会做与 PNG 序列相同的工作。问题是,对于大多数动画来说,很多像素在帧与帧之间都没有被触及……如果你只是将它呈现为一系列图像,那么你会在时间上重复的像素上浪费大量时间和空间。这就是我们有视频编解码器的原因。
您可以根据需要尝试手动加载/卸载 png 图像。不知道你的帧率要求是多少。另外,考虑一个质量不错的 jpg 或动画 gif。而且您始终可以使图像更小,这样它就不会占据整个屏幕。只是一些想法。