Flash占CPU 优化

来源:互联网 发布:知乎 恐怖提问 编辑:程序博客网 时间:2024/04/30 00:33

有的网页看起来并不大但打开会很卡,有的网页虽然很长但使用流畅,占用用户电脑的内存与CPU就影响这些。浏览器问题,有各自的浏览器处理内存问题会影响到,但几乎没办法控制得了,Windows上的:

  IE系列,刷新回收的量不大,但最小化会释放内存,。 
  Firefox2据说也会在最小化回收,可我从没见过最垃圾,用多少是多少,基本不回收。据说prototype的ajax还会引起内存一直增加。 
  Opera最好。一直控制得很好。不存在什么问题。 
  Linux的内存分配机制与Win的不一样,有多少用多少,如果浏览器占光时说不定会干掉系统。

      页面问题,浏览器渲染页面会消耗内存和CPU,能减少一点就减少点。

  结构上

  使用DocType,告诉浏览器你在用什么,html4也有DTD。也许Transitional更适合你。

  如果使用的是XHTML并能保持良好结构的话,记得输出相应的MIME跟XML头1,可以减少浏览器的代码检查,保持结构的完整,不要让浏览器帮你补全代码。

  控制页面的文件大小,可以通过程序把为了看代码比较舒服的缩进去掉。2~3K也是大小。

  iframe会产生新的页面,其实有很多方式可以代替iframe引入的JS与CSS可以适当合并,同样背景图片也可以合并,甚至有人连Flash都合并给已知宽高的内容图片/Object加上宽度的属性可以减少页面的局部重渲染。

  表现上

  质量99跟70的jpg在大多数情况下只有文件有大小不一样。gif的也一样,特别是小图标,256色跟128色的差别是文件大小。

  flash动得太快吃CPU很大,控制每秒的帧数及动画的效果可以减少一些,如果把品质用中低显示会省很多资源,但这样却牺牲了效果。。quality属性 有时选择Autolow2 或者Autohigh会更适合,没必要一直low 或者best,flash使用矢量图会节省文件大小,但计算复杂的图形跟动画时花的是CPU。复杂的太多滤镜,则会占用大量内存,模糊滤镜有减少些3。

  IE的滤镜也是比较占用内存,同时也有兼容性问题。全屏的半透明很吃资源的。

  2*2的图片跟8*8的图片大小差不多,但是平铺背景2*2却占用大很多。

  gif动画同样有帧的概念,别把gif当成flash来玩就行。

  行为上

  别为了使用一个 $()引入整个pretotype或jQuery,它们有更多的作用。

  AJAX很帅。但是用xml会用上XML解析器,有人推荐用JSON,可是这样要eval数据,其实可以直接import已经是对象的script来用。只是要多传个对象名,或者把对象名写死,或者像flickr那样jsonFlickrApi({"xxx":"xxx"}),直接当函数用。

  实现某些效果时能用visibility:hidden解决时就别用display:none。在这里强调js变量要注全局跟局部等等的意义并不大,JS复杂的地方也不是一两句能说得清的。

    产生问题:虽然会引起浏览器的模式问题 ,但问题是可以解决滴。参考Serving up XHTML with the correct MIME type ,派送XML头浏览器不会容错显示,出现错误结构会导致整个页面无法显法。

  Autolow: 优先考虑速度,但是也会尽可能改善外观。 回放开始时,消除锯齿功能处于关闭状态。 如果 Flash Player 检测到处理器可以处理消除锯齿功能,就会打开该功能。

  Autohigh:开始时回放速度和外观两者并重,必要时会牺牲外观来保证回放速度。 回放开始时,消除锯齿功能处于打开状态。如果实际帧频降到指定帧频之下,就会关闭消除锯齿功能以提高回放速度。使用此设置可模拟“消除锯齿”命令(“视图”>“预览模式”>“消除锯齿”)。

  模糊滤镜:使用模糊滤镜时,如果用于 blurX 和 blurY 的值是 2 的整数次幂(例如 2、4、8、16 和 32),则可以加快计算速度,并且可以使性能提高 20% 到 30%。

=========================================

Flash作为Macmmedia公司出品的网页制作与动画创作的专业软件,操作简便,功能强大,现已成为交互式矢量图形和Web动画方面的标准。但是,如果制作的Flash文件较大,动辄几百K的话,常常会让网上浏览者在不断等待中失去耐心。因此对Flash进行优化显得很有必要,但前提是我们不能有损其播放质量。

1.多使用符号(Symb01)。如果Flash中的元素有使用一次以上者,则应考虑将其转换为符号。重复使用符号并不会使文件明显增大,因为只需储存一次符号的图形数据。

2.尽量使用渐变动画。只要有可能,应尽量以“移动渐变”(CreateMotionTween)的方式产生动画效果,而少使用“逐帧渐变”(Frame-By-Frame)的方式产生动画。关键帧使用得越多,Flash文件就会越大。

3.多采用实线,少用虚线。限制特殊线条类型(如短划线、虚线、波浪线等)的数量。由于实线的线条构图最简单,因此使用实线将使文件更小。

4.多用矢量图形,少用位图图像。矢量图可以任意缩放而不影响画质,位图图像一般只作为静态元素或背景图,Flash并不擅长处理位图图像的动作,应避免位图图像元素的动画。

5.多用构图简单的矢量图形。矢量图形越复杂,CPU运算起来就越费力,可使用菜单命令Modfy(修改)/Curves(曲线)/Optimize(优化),将矢量图形中不必要的线条删除,从而减小文件。

6.导入的位图图像文件尽可能小一点,并以JPEC方式压缩。

7.音效文件最好以MP3方式压缩。MP3是使声音最小化的格式,应尽量使用。

8.限制字体和字体样式的数量。尽量不要使用太多不同的字体,使用的字体越多,Flash文件就越大,尽可能使用Flash内定的字体。

9.不要包含所有字体外形。如果包含文本域,则应考虑在TextFieldProperties(文本域属性)对话框中选中Include05SpecifiedFomOutlines(只包括指定字体外形),而不要选择IncludeAllFontOutlines(包括所有字体外形)。

10.尽量不要将字体打散(菜单命令为Modify/BreakApart)。字体打散后就变成图形了,这样会使文件增大。

11.尽量少使用过渡填充颜色。使用过渡填充颜色填充一个区域比使用纯色填充区域要多占50字节左右。

12.尽量缩小动作区域。限制每个关键帧中发生变化的区域,一般应使动作发生在尽可能小的区域内。

13.尽量避免在同一时间内安排多个对象同时产生动作。有动作的对象也不要与其他静态对象安排在同一图层里。应该将有动作的对象安排在各自专属的图层内,以便加速Flash动画的处理过程。

14.用LoadMovie命令减轻Flash一开始下载时的负担。若有必要,可以考虑将Flash划分成多个子文件,然后再通过主Flash里的LoadMovie。UnloadMovie命令随时调用、卸载子文件。

15.使用预先下载画面。如果有必要,可在Flash一开始时加入预先下载画面(Preloader),以便后续Flash画面能够平滑播放,较大的音效文件尤其需要预先下载。

16.Flash的长宽尺寸越小越好。尺寸越小,Flash文件就越小,可通过菜单命令Modify(修改)/Movie(电影),调节Flash的长宽尺寸。

17.先制作小尺寸Flash文件,然后再进行放大。为减小文件,可以考虑在Flash里将尺寸设置小一些,然后导出迷你SWF文件,接着将菜单File(文件)/PublishSettings……(发布设置……)中HTML选项卡里的文件尺寸设置大一些,这样,在网页里就会呈现出尺寸较大的文件,而画质丝毫无损、依然优美。

最后要提醒大家的是:在进行上述修改时,不要忘记随时测试Flash的播放质量、下载情况和查看Flash文件的大小。

原创粉丝点击