我正在使用flash cs5和AS3为Android平台开发游戏。
问题:游戏将以24-29 fps运行,直到我调用具有逐帧动画的movieClip,然后它将降至10-14 FPS。 它在我的电脑上看起来很完美,并且在我将它移动到我的Evo进行测试之前不会丢失帧。我也测试了一个Epic,我不会丢失帧,这让我相信它是evo中导致问题的pixil人口,但我已经尝试了一切我能想到的不要让它在图形上如此强烈但每次都有相同的结果。
这是一个20帧动画,闪光灯中的FPS设置为24
我尝试过:
每帧的png | 每个框架上的gif | 钢笔工具矢量绘图的每个框架上的每个图像| 补间而不是逐帧| 影片剪辑中的静态图像,并在AS3中创建一个循环遍历图像的循环 onEnterFrame |
实际上唯一能让它平滑的是每帧都有相同的图像。这就是为什么我认为它是图形而不是处理器。
**Benchmark on PC :**
FPS: 24/24
FPS DURING ANIMATION: 24/24
MS: 33
MS DURING ANIMATION: 33
MEMORY: 18.87
MEMORY DURING ANIMATION: 19.27
**Benchmark on Evo :**
FPS: 24/24
FPS DURING ANIMATION: 13/24
MS: 36
MS DURING ANIMATION: 80
MEMORY: 2.931
MEMORY DURING ANIMATION: 2.993
答案 0 :(得分:2)
不要使用矢量:它太可怕了。您需要做的是使用cacheAsBitmapMatrix方法,但只有在使用AIR for android发布设置发布时才可以使用此方法。
另外一个关于利用移动/ Android上的GPU加速的视频教程,引导您完成基准测试和实施:
http://gotoandlearn.com/play.php?id=132
作为答案的最后一次更新,这是一篇很棒的文章,比较了Android平台+基准测试中绘制的所有这些方法:
http://labs.byhook.com/2011/01/13/digital-sheep-air-for-android-drawing-performance/
它详细讨论了不同的实现以及为什么有些比其他实现更好/更差。