选择显示字体大小

浅释actionscript的代码优化

本文既为浅谈代码优化,那么就不深入到oop设计层面。仅涉及flash8帮助里面提到的一些代码编写优化原则,并加以解释。

准则来源于flash8 帮助,我做了一些解释:

1.避免从一个循环中多次调用一个函数。
在循环中包含小函数的内容,可使效果更佳。小函数生命期短,利于资源释放。尤其是在大的循环中时。

2.尽可能使用本机函数。
本机函数要比用户定义的函数运行速度更快。本机函数即flash中内有的一些函数(intrinsic),比如hittest(),你没必要自己写一个类似的。

3.不要过多使用 object 类型。
数据类型注释应力求精确,这样可以提高性能。只有在没有适当的备选数据类型时,才使用 object 类型。同时也便于代码管理,时刻知道对象的类型和作用。
同时也有利于编译器编译时优化。

4.避免使用 eval() 函数或数据访问运算符。
通常,较为可取且更有效的做法是只设置一次局部引用。不得已时才用eval,比如转换_droptarget为movieclip时。

5.在开始循环前将 array.length 赋予变量,尤其是大的循环。
在开始循环前将 array.length 赋予变量(比如var ilength:number),将其作为条件使用,而不是使用 myarr.length 本身。
原因,在循环中,ilength是number变量,会被放入寄存器使用,效率远比访问array再得到length高。例如,应使用

var fontarr:array = textfield.getfontlist();
var arraylen:number = fontarr.length;
for (var i:number = 0; i < arraylen; i++) {
    trace(fontarr[i]);
}

来代替:

var fontarr:array = textfield.getfontlist();
for (var i:number = 0; i < fontarr.length; i++) {
    trace(fontarr[i]);
}

6.注重优化循环及所有重复动作。
flash player 花费许多时间来处理循环(如使用 setinterval() 函数的循环)。

7.在局部变量够用时,不要使用全局变量。 类静态变量也要少用。
全局变量是开发者的恶梦。实在需要全局变量的话,我建议使用singleton设计模式来进行管理。

8.声明变量时,添加 var 关键字。
这是为了编译时让编译器知道你的变量类型,优化编译。

黑羽补充两点:

1、对关键字的使用要谨慎。
不赞成使用关键字作为自己的method和属性名,除非你确认后续开发不会用到相同的事件名和属性名。
但你怎么知道flash使用了多少隐藏关键字?太多了!比如说 classname, invalidate, refresh, mouseover等等不常用的关键词。好的方法是使用sepy编辑器来写代码,那里面加亮了所有公布的和没有公布的关键词。
而且因为很有可能和start,load,等这些常用的事件名重复,带来代码不必要的修改和麻烦。

2、对涉及到调用绘图资源的函数时,尽量先多判断再调用。
所有渐变,位置变化,创建删除mc,组件等函数都涉及到绘图资源的调用。在很多情况下,尽量先用逻辑判断变量或者对象的属性,必要时再调用这些函数。这样可以节省较多的计算资源


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons