提高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> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值