- 1
- 0
- 约5.78千字
- 约 8页
- 2017-07-08 发布于贵州
- 举报
提高flex应性能的技巧
有关提高flex应用性能的技巧
1. 不要使用new操作符创建数组,应使用
var a = [];
而不是:
var a = new Array();
2. 创建数组的性能开销很大,请谨慎进行如下操作:
var vanityCollection01 : Array = new Array();
var vanityCollection02 : Array = new Array();
var vanityCollection03 : Array = new Array();
var vanityCollection04 : Array = new Array();
3. 最快的数组复制方法:
var copy : Array = sourceArray.concat();
4. 为数组中的元素赋值都是比较慢的操作,如:
employees.push( employee );
employees[2] = employee;
5. 从数组中读取元素的速度是为元素赋值速度的2倍:
var employee : Employee = employees[2];
6. 适当使用静态方法不需要实例化对象,可以提高性能:
StringUtils.trim( text with space at end );
Class definition:
package
{
public final class StringUtils
{
public static function trim( s : String ) : String
{
var trimmed : String;
// implementation...
return trimmed;
}
}
}
7.将应用生命周期都不会改变的属性声明为常量:
public const APPLICATION_PUBLISHER : String = Company, Inc.;
8. 当确定一个类不会派生子类时,应使用final修饰符:
public final class StringUtils
9. 在ActionScript3中,方法和变量的长度不会对性能造成影响:
someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch();
10. 在一行代码中进行多个变量赋值不会提高性能:
var i=0; j=10; k=200;
11. 使用if语句和switch语句无内存开销的差异:
if ( condition )
{
// handle condition
}
使用switch语句:
switch ( condition )
{
case A:
// logic to handle case A
break;
case B:
// logic to handle case B
break;
}
12.使用if语句时,尽可能地按照最有可能发生的情况的顺序进行判断和处理:
if ( conditionThatHappensAlot )
{
// logic to handle frequently met condition
}
else if ( conditionThatHappensSomtimes )
{
// handle the case that happens occaisonally
}
else
{
// handle the case that doesn#8217;t happen that often
}
13. AVM 在循环体内部进行计算时,将整型(int)数据提升为浮点型Number进行处理(从版本9到版本10,Actionscript虚拟机已经有所改变,int,uint,number之间的转换速度不再像之前慢了)
14. 要解决类型转换,就要先解决未知和不正确的对象类型
15. 谨慎使用unit,他可能会较慢(从版本9到版本10,Actionscript虚拟机已经有所改变,int,uint,number之间的转换速度不再像之前慢了)
var footerHex : uint = 0x00ccff;
16. 应在for循环中使用in
原创力文档

文档评论(0)