AS的执行速度 |
| 作者:佚名 来源:不详 更新:2007-1-13 20:36:26 错误报告 我要投稿 |
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文件大小。。也可以提高执行速度。。。
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |