提高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();

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’t happen that often
}

15. 谨慎使用unit,他可能会较慢(从版本9到版本10,Actionscript虚拟机已经有所改变,int,uint,number之间的转换速度不再像之前慢了)
var footerHex : uint = 0x00ccff;
16. 应在for循环中使用int:
(var i: int = 0; i < n; i++) NOT for (var i: Number = 0; i < n; i++)
17. 不要用int类型来表示小数,应使用:
var decimal : Number  = 14.654;
而不是: 
var decimal : int  = 14.654;
20. 尽量避免在循环体判断条件中进行计算或者方法调用,应当使用:
var len : int = myArray.lengh; 
for (var i=0;i<len;i++){}
而不是: 
for (var i=0;i< myArray.lengh;i++){ }
25. 避免将Repeaters用于能够滚动的数据
26. 避免使用setStyle()方法(在flex框架中最消耗性能的方法之一)
27. 使用过多的容器将会严重降低系统性能
<mx:Panel>
    <mx:VBox>
        <mx:HBox>
            <mx:Label text="Label 1" />
             <mx:VBox>
                  <mx:Label text="Label 2" /> 
              </mx:VBox>
              <mx:HBox>
                  <mx:Label text="Label 3" />
                  <mx:VBox>
                      <mx:Label text="Label 4" />
                  </mx:VBox>
              </mx:HBox>
          </mx:HBox>
      </mx:VBox>
</mx:Panel>
32.设置Repeater的recycleChildren的属性为true可以提高Repeater对象的性能(重新利用已创建的子组件而不是再创建一个新的子组件)
<mx:Script>
    <![CDATA[
        [Bindable]
        public var repeaterData : Array = ["data 1", "data 2"];
    ]]>
</mx:Script> 
<mx:Repeater id="repeater" dataProvider="{repeaterData}"> 
    <mx:Label text="data item: {repeater.currentItem}"/>
</mx:Repeater>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值