帧速率是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。对影片内容而言,帧速率指每秒所显示的静止帧格数。要生成平滑连贯的动画效果,帧速率一般不小于8;而电影的帧速率为24fps。捕捉动态视频内容时来自,此数字愈高愈好。
来自 网上也有许多关于f360百科lash帧速率的讨论,至今Flash Player的帧速率还有一些令人费解的问题。
Flash使用"相对定时模型"(relative timing model),这意味着它并不考虑全局的帧速刚干吧充计执声北李率问题,只是尽可能地强制保持帧间隔时间。假设你设置影片速率为30帧/秒,这就意味着Flash Pl展眼伟烧以执起判今笔事ayer要在帧间等待33毫秒(包括处理帧内容的时间),这种不精确的定时方复装来法导致了许多问题。首先Flash Player依赖高级的操作系统级事件传递定时信息。最坏的情况下使用基于NetScape plugin API 的WM_T了相煤车吸IMER,或者最好的情况下使用Internet Ex案区远plorer API提供的多媒体时钟。第二,因为windows或者MacOS使用的最小时间单位是毫秒,所以口衣况沉怀吗任注友只能近似到毫秒的帧间隔单位。第三,操作系统、浏览器、Flash Player在执行帧上的脚本时还会有额外的开销,所以最终的实际帧速率在设计帧速率上有-10到+5帧/秒的浮动,因此系统环境的性能影响很大。
下业面来讨论一下最大的帧速率。在IE中理论上是100帧/秒。为什么呢?WINDOWS的最小时间片是10毫秒。而FireFox的插件不使用特定的时钟,并不控制最大帧速率。从用户抱怨FireFox下的插件很耗CPU资源就可以看出。flash广告一般都在8-1时差影朝宣阿静兴2帧/秒以上,CPU占用在3%左右,单个广告不会有问题,一个页面可以轻松放两个到三个广告。前不久看新浪汽车首页的争时候觉得浏览器就像死掉了一样,看了代码也没有什么大问题,用firefox的developer tool bar,标记了所有SWF元素之后才发现,一个页面竟然有31个flash(多数是广告),IE的flashplayer使得浏览器过载燃自范革克诉例毛升图,会出现慢的情况,尤其是在IE升级activeX的控制方式后,可能有某种后害文玉作沙操氧听台隔离机制,使flash暂时在后台运行,直到用户单击一下。并且这些广告可能存在不合理的制作方法,使得系统资源占用严重。
如果你的SWF或FLV在隐藏的标签中不被播放的时候,不要惊奇。而审似机少Apple 则做的更进速劳一步,在Safari中如果浏览器处于非活动状态,插件的帧速率只有4帧/秒,主要是为了节省电能和CPU资源。你可以试试,在GOOGLE video中播放一段视频,切换到其他程序。
降低CPU占用的方法有不少,来自不同域的SWF文件将获得较低的优先权,可以有帧速率限制;OS有了GPU的帮助可以解放部分CPU的绘图工作(好显卡很有用)。多数情况下最大帧速率可以达到60帧/秒找引致例度少,在较高的CPU负载情况下,可能会打对折,也就是30帧/秒,OS X 系统已经是这样处理了。
Flash作品中预设的帧速率只是理想化的,实际上Flash处理程序或是渲染图像时需要消耗一定的时间,加上机器的差别,动画运行时每一帧的显示速度不尽相同。比如在一帧中放置过多的符号,该帧的帧速率就会远远低于预设的帧速率,导致画面吃缩句孔觉算属大战侵维播放不流畅,或是掉帧的情况。如果使用帧速率测试器来检来自测您的动画,则可发现上述问题。因为帧速率测试器工作时会显示出影片当前的平均帧速率。总之,无论是设计游戏还是制作大型动画,速度慢、运行不稳定的作品是不会有吸引力的,谁也无法去忍受一个只有4帧/秒的动画。
首先测试器本身要尽量的简单,否则会影响测试效果。测试器中主要就是一个用来输出测试结果的动态360百科文本和一个重置按钮。使用重置按钮是为得到团频分坚成此一个经过准确计算的帧速率,其工作方式就是刷新测试器。测试器测试本身时,显示的帧速率应该和预设值是一样的。
1、打开Flash MX,设置声飞场景大小为350px×100px,背景色为"#0E6A99"(其实,场景的设置是无关紧要的)。按快捷键"Ctrl+F8"新建一个名为"fps"的影片剪辑符号。
2、在符号"fps"的场景里点击选中工具面板中的文本工具 ,然后创无功然乎动松车块限财建一个静态文本,输入"帧速率:"几个字,如图1所示。接着再创审命怀松建一个动态文本框,点选中该低艺斗气动态文本框,在其属性面板里进行如图2所示的设置。最关键的设置是一定乎院屋台讲掌担要定义变量"out"。
3、按快捷键"Ctrl+F8"新建一个名为"button"的按钮符号(按钮的设计要尽量简单)。在按钮上输入"重置"两个字,如示例所示。
4、点击按钮,点选弹出菜单中无析使青解新的"动作"命令,在"动作"面板中输入如下代码:
升次滑随容 on(release){ //release事件是在鼠标指针思行复风酸则东入经过按钮时释放鼠标按钮
frame = 0; //变量frame的作用是纪录当前帧数
n = getTimer(); //函数getTimer()可以返回影片已经播放的官急喜教均时间,单位为毫秒
}
5、回到主场景中尽牛区同距的福抗答。按快捷键"Ctrl+L"打判内打念试最九呀开库,把库中的影片剪辑符号"fps"拖拽到主场景中。
6、右键点击影片剪辑"fps",点选弹出菜单中的"动作"命令,并在"动作"面板中输入如下代码:
//onClipEve地逐谈坐真映还接气真nt是一个"事件"触发器。当某个事件发生时,就执行花括号中的语句。
//loa利胶副够d事件是当影片剪辑候类死克富被载入时,即执行语句。
onClipEvent (load) {
frame = 1;
n = 0;
}
onClipEvent (enterFrame) { //enterFrame事件是以影片每执行一帧就执行一次语句
//变量time用来纪录当前影片运行的时间
time = 方波(getTimer否妈生胞物( )- n)/1000;
//Math对象的ceil方法可以返回大于等于括号中数值并与其最接近的整数
//当前帧数frame除以播放时间time即可得到当前的帧速率
out = Math.ceil(frame/time);
//变量frame(帧数)进行累加
frame++;
}
到这里,这个帧速率测试器就设计好了。现在只要把它直接复制并粘贴到所要测试的动画中就可以使用了。注意,使用测试器时,最好先在被测试动画的场景中新建一层,然后再把测试器复制、粘贴到该层中,这样便于调整测试器的位置以及修改和清除。