显然有很多关于得分计数器的帖子,我有一个更新每一帧(Enter_frame函数)的计数器,它工作正常。得分变量每帧增加,因此文本字段改变以显示得分。
我的问题是在iOS上它会让应用程序出现一些严重的帧速率问题,当我启用得分自动收报机时,我说的是5-10 fps的下降,这是非常恶劣的等等。我只是想知道是否有一些解决这个问题,我认为这是因为它必须每帧都更新并重新绘制文本字段,但我无法看到解决方法。
欢迎任何建议,
谢谢!
答案 0 :(得分:1)
使用具有不透明背景的TextField或更改为位图字体可能有助于提高性能。
例如,您可以提前创建单独的位图图像,或者在运行时,您可以使用bitmapData.draw为您需要的每个数字生成单独的BitmapData实例。然后,您可以交换位图以显示正确的分数。
您可能还会考虑将来使用NME,这与Flash非常相似,但是比移动平台的Adobe AIR快3到9倍。例如,Iain Lobb的BunnyMark基准可以在iPhone 4上使用Adobe AIR以16 FPS渲染500个兔子,旋转和alpha .NME在同一设备上以30 FPS渲染4750个兔子。
这就是我用来避免性能问题的方法
答案 1 :(得分:0)
您应该将分数重新定义为时间的函数。
score = t / 100; //where t is in milliseconds
在游戏开始时,初始化一个计时器变量;
var start:Number = getTimer();
然后在你的ENTER_FRAME
听众中,根据实际时间计算分数,而不是帧数:
score = (getTimer() - s) / 100;
这是一种独立于表现的方式,可以按时完成分数。