我有一个15fps基于AS2的在线系统,可以播放动画。 AS2 swf格式中有成千上万个外部加载的动画。
我将主系统升级为使用AS3并以60fps运行,并相应地更新了它自己的嵌入式动画关键帧,使其间隔4倍,因此它们以60fps正常播放。
由于我无法更新从外部源加载的所有数千个单独的15-fps AS2动画,因此我必须按原样播放它们。实际上,我破解了字节流标题以强制它们作为AS3加载。它们可以加载和播放,但似乎主要电影暂时降低了它的帧速率,以便在播放时匹配儿童电影。这导致它自己的动画看起来非常缓慢(在关键帧更新为以60fps查看后以15fps播放)。
起初我认为它从处理视频文件开始变慢,但现在我意识到较慢的子剪辑似乎导致播放器暂时降低它的帧速率以匹配。任何人都可以确认这个暂时放慢速度或建议解决方法吗?
编辑:动画有“同步到流”的声音,我依稀记得读到一些异常,这会导致播放器在通常保持父加载器帧速率的地方减速。
答案 0 :(得分:1)
Flash不会占用帧,并且您只有一个容器,因此Flash必须匹配所有帧速率。
解决方案有点困难:使用Action Script控制帧速率。我解释了这个想法:
您必须创建一个Timer和一个Array,Timer的间隔将是加载的文件帧速率。如果它是每秒15帧,那么以秒为单位的间隔将是1/15。
您必须制作一个加载文件的加载程序,将其停止并将其推送到数组中。
每次计时器滴答时,它将循环所有Array对象,并在每个对象上执行nextFrame
,因此您可以以相同的帧速率获得大量文件,但与主电影不同。 / p>
就是这样,这是内部帧速率控制器的较少CPU消耗模型。请记住,此模型适用于具有相同帧速率的文件,如果您修改它,则可以针对不同的帧速率执行相同的操作。
另一个解决方案是修改flash中的所有文件,使其具有相同的帧速率,我认为此解决方案是最佳的文件数量。