第一条:AS3 程序优化文档:来自joe的http://je2050.de/files/misc/as3opt.pdf
这份文档中提到的部分知识点在其它地方也有提及,我作了简单的翻译,如下:
1、 在循环语句中,使用int 比Number要好。比如: for (var i:Number = 0;i<100;i++){ // } 优化为: for (var i:int = 0;i<100;i++){ // }
2、 复杂对象要抽象为数据类型,尽量避免使用Object动态数据类型。
这个要慢: for (;i<n;i++) { var v: Object = new Object; v.x = 1; v.y = 2; v.z = 3; } 优化后的代码: class Vector3D { public var x: Number; public var y: Number; public var z: Number; } for (;i<n;i++) { var v: Vector3D = new Vector3D; v.x = 1; v.y = 2; v.z = 3; }
3、 数组中含有复杂数据时,访问前先申明元素的类型,可以省去播放器检测元素数据类型的步骤。 这个要慢: for (;i<n;i++) array[i].x = 2; 优化后的代码: for (;i<n;i++) Vector3D(array[i]).x = 2;
4、 继续第一条 通过数据下标访问数组元素时,确保索引是int类型。向表达式 i*2 将被当作Number类型,最好先转化为int类型。
5、 能够使用 null 的地方,不要使用 try..catch
6、 在构造函数中的代码是不会被JIT编译器优化的。为了避免这一点,我们可以把代码放在构造函数之外的函数中,然后去调用,这些函数都将被优化。
JIT(Just - in - time)即时编译器,是AS3的特性之一。字节码在运行时被转换为机器码,提高运行速度。
第二条: Thibault Imber花费一年多时间写的AS3书问世,并免费提供电子版下载。可以是法文版的,不过看看代码还是很有用的。
目录:http://pratiqueactionscript3.bytearray.org/?page_id=4
下载:http://pratiqueactionscript3.bytearray.org/wp-content/ouvrage/Pratique%20d'ActionScript%203%20-%20version%200.1.zip