2015-02-09 40 views
0

我有一个任务,在运行时使用代码将相同时间段的FlashIDE制作的时间轴动画(使用大量过滤器和东西)转换为相同的位图序列等。以便随时从池中提高性能并重新使用此位图。 重要:我必须从swf中获取这些动画,我首先在主应用程序中加载这些动画。将时间轴矢量动画转换为位图序列

是否有任何开箱即用的解决方案?

谢谢。

回答

0
+0

事情是我必须从我首先加载的swf文件中抓取那些动画。 – momijigari 2015-02-09 21:16:17

+0

好的,你必须播放SWF并使用'BitmapData/draw()'绘制每一帧。你*可能*能够通过每一帧使用'gotoAndStop()',所以你不必真的等待帧的回放。然而,这个过程对于运行时会有点沉重,这就是为什么如果可以的话,“标准”方式会事先做到这一点。 – Aaron 2015-02-09 22:01:09

0

这是错误的做法。将动画转换为位图序列需要大量的CPU和内存,如果动画很大,甚至可能会使应用程序空闲。 最好的方法是创建一个将加载(或获取)swf的转换器类。该转换器类将模仿具有相同帧数的swf播放头,但不会在位图中绘制所有帧,而仅绘制所播放的帧。例如,如果您调用该类的gotoAndStop(32),该类将检查该框架是否已绘制,如果不是,则绘制它并显示它。同样的事情,如果你打电话play(这是gotoAndStop(索引++))。目标是仅绘制需要根据需要显示的帧。您可以处理已播放的帧或将其保存在内存中,但对于大动画处理会更好。