将时间轴矢量动画转换为位图序列



我有一项任务,要在运行时用代码将FlashIDE制作的时间线动画(使用大量过滤器和其他东西)转换为相同的位图序列,每个帧的持续时间等相同,以提高性能并随时从池中重复使用这些位图。重要:我必须从swf获得那些动画,我首先在主应用程序中加载这些动画。

有现成的解决方案吗?

谢谢。

是的,使用精灵表导出:https://helpx.adobe.com/flash/using/create-sprite-sheet.html

这是错误的方法。将动画转换为位图序列将需要大量的CPU和内存,如果动画很大,甚至可能会使应用程序闲置。最好的方法是创建一个转换器类来加载(或获取)swf。这个转换器类将模拟具有相同帧数的swf播放头,但不会绘制所有帧的位图,只绘制播放的帧。例如,如果您调用该类gotoAndStop(32),则该类将检查该帧是否已绘制,如果未绘制,则绘制该帧,然后显示该帧。如果您调用play(即gotoAndStop(index++))也是如此。目标是只绘制需要根据需要显示的框架。您可以处理已播放的帧,也可以将它们保存在内存中,但对于大型动画,处理效果会更好。

最新更新