加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

提高flex应用性能方法

发布时间:2020-12-15 05:09:29 所属栏目:百科 来源:网络整理
导读:1. 不要使用new操作符创建数组,应使用? ? ? ?var a = [];? ? 而不是:? ? ? var a = new Array();? 2. 创建数组的性能开销很大,请谨慎进行如下操作:? var vanityCollection01 : Array = new Array();? var vanityCollection02 : Array = new Array();? var va
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??
}?

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>?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读