站内搜索:     
站点首页破釜学院网页制作FlashAction应用 → AS的执行速度
正在加载相关信息.....
Web 站内搜索
AS的执行速度
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【收藏到365KEY】 浏览字号:
日期:2006-09-01 人气: 出处:闪吧个人空间 作者: warm-ice
 AS是一种没有经过编译的语言,它的执行主要靠FLASH PLAYER,执行速度受到了一定的限制。同时。。。flash是一种矢量Vector格式,需要占用CPU资源,在一些CPU运算速度比较慢的机子上看FLASH确实不太理想。

  如此,优化flash的执行速度就是很重要的了。我们可以从两个方面来优化它的速度:优化下载速度和优化播放速度。而这两种优化必须从内容制作和AS入手。。

  在内容制作上的优化,主要是压缩位图。。声音文件大小进行压缩。。减小矢量Vector图形的复杂程度。。。多用元件。。避免重复。。这些都可以改善下载速度。。。
 
  在改善播放速度上。。应该避免改变位图的大小。。避免大型渐变矢量Vector图形或者Alpha效果在画面上移动。。

  在AS上。。。代码越短越好。。程序上使用循环的地方。。一定要有终结的方法。。当FLASH PLAYER发现循环执行超过15秒的时候。。它会发出警报。。询问使用者是否强行结束。。。

  将if条件语句换成 if...else if...else。如果程序中有很多if条件语句。。应该尽量采用if...else if...else语句。。。if语句执行所有的条件语句。。浪费时间。。后者在条件符合后。。后面的条件语句就不执行了。。同样的道理。。将常见的条件放在if...else if...else 语句前面位置。。避免在经过前面很多的if条件后,才找到最符合要求的条件。。。例如。。。

   var ranno=random(10);
   if(ranno==0){
        trace(0);
   }
   if(ranno==1){
        trace(1);
   }
   if(ranno>1){
        trace(">1");
   }


  可以该为:
   var ranno=random(10);
   if(ranno==0){
          trace(0);
   }else if(ranno==1){
          trace(1);
   }else if(ranno>1){
          trace(">1");
   }


 另外。。由于随即产生0`9的认识数字的时候。。。大于1的比率会比较大。。所以。。把ranno>1的情况最容易出现。。放在整个条件语句的前面更为妥当。。如此。。上面的程序可以改成。。
   var ranno==random(10);
   if(ranno>1){
           trace(">1");
   }else if(ranno==0){
           trace(0);
   }else if(ranno==1){
           trace(1);
   }



  在flash创作工具中。。。测试影片的时候。trace可以输出信息。方便调试debug。。但是在网页中。。或者放映文件projector时候。。trace是无效的。。。所以在发布flash时候。。在发布设置里面。。应该选中“省略跟踪动作”Omit Trace actions,这样既可以减小flash文件大小。。也可以提高执行速度。。。

>>>> 进入论坛交流 <<<<