原始文献 |
Rich Internet Applications with Adobe Flex & Java |
页码号 |
27-29 |
翻译者 |
刘锦行(whizen) |
翻译时间 |
|
修订记录 | |
|
帧刷新率
Flash Player能够根据设定的帧刷新率来渲染GUI组件(显示列表).与Flash动画文件不同的是,Flash动画通常在一个时间线上需要显示多个帧.Flex程序虽然没有多个帧需要显示,但是帧刷新率仍然在Flex编程中扮演着重要的角色.显示列表(你的GUI组件们)能够按照设定的帧刷新率被渲染而且高的刷新率能够让GUI的效果表现更加完美,但是这并非是没有代价的.
默认情况下Flex编译器使用每秒24帧的刷新率来构造你的SWF文件,但是可以通过下面的指令来改变,如下:
mxmlc –default-frame-rate 50 HelloWorld.mxml
这条指令会将SWF的刷新率变更为50帧每秒.但是因为显示列表的渲染和AS的执行是依次进行的,所以帧刷新率也可能影响到应用程序的性能.
因为有OS/浏览器等因数的影响,所以将帧刷新率设定为50并不表示每个帧会精确的在20毫秒内被刷新.另外,很多浏览器都为其插件设定了很低的CPU占用率限制.
想知道编译时候的刷新率设定会如何影响到程序的执行么?只需要如下图所示编写一个enterFrame函数(这个函数在每次渲染帧的时候都会被调用)用来在每次刷新到新帧的时候记录实际的帧刷新率
<?xml version=”1.0” encoding=”utf-8”?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml”
enterFrame=”enterFrameHandler()”>
<mx:Script>
<![CDATA[
var lastTime:int;
function enterFrameHandler():void{
trace(int(1000/(getTimer()-lastTime)));
lastTime=getTimer();
}
]]>
</mx:Script>
<mx:Button label=”Button”/>
<mx:TextInput/>
</mx:Application>
我们进行测试的平台是一台单核1.0GHz的笔记本电脑,其安装这winXP系统和IE与火狐浏览器.表格2.1和2.2显示了设定值和实际值的比较,还有运行时候的CPU占有率.
表格2.1 2.2
(请参阅原文)
结果非常明显,首先证明了低的刷新率需求的CPU占用率也很低,所以你需要权衡程序的GUI性能和CPU占用率方面为你的应用程序找到平衡点,要知道客户们都会同时运行很多的程序,因此不要因为你自己想感受华丽光鲜亮丽的图像渲染而让客户产生干掉CPU的想法.不过你如果需要创建Flash影片那就另当别论了,否则请尽量保持低刷新率吧.