根据提供的标题、描述、标签及部分内容,我们可以总结出与Flex优化相关的多个知识点。这些知识点主要集中在提高Flex应用程序的性能上,涉及代码优化、资源管理、数据处理等方面。 ### Flex优化全集 #### 1. 数组操作优化 - **初始化数组**:在Flex中,可以使用两种方式初始化数组。第一种是直接赋值`var a:Array = []`;第二种是通过`new Array()`构造函数。推荐使用第一种方法,因为它更加简洁。 - **多数组初始化**:当需要创建多个数组时,避免重复使用相同的变量名,并确保每个数组都进行了正确的初始化。例如: ```as3 var vanityCollection01:Array = new Array(); var vanityCollection02:Array = new Array(); var vanityCollection03:Array = new Array(); var vanityCollection04:Array = new Array(); ``` - **数组复制**:使用`concat()`方法来复制数组。这不仅可以减少内存泄漏的风险,而且提高了代码的可读性。 ```as3 var copy:Array = sourceArray.concat(); ``` #### 2. 数组元素操作 - **添加元素**:使用`push()`方法添加元素到数组末尾是最常见的操作之一。此外,还可以通过索引直接修改或添加元素。 ```as3 employees.push(employee); employees[2] = employee; ``` - **获取元素**:通过索引获取数组中的元素是一种快速且常用的方法。 ```as3 var employee:Employee = employees[2]; ``` #### 3. 字符串处理 - **去除空白字符**:利用自定义的`StringUtils`类中的`trim()`方法去除字符串两端的空白字符。 ```as3 StringUtils.trim("text with space at end"); ``` - **类定义**:定义一个静态方法用于实现字符串去空操作。 ```as3 public static function trim(s:String):String { var trimmed:String; // 实现细节 return trimmed; } ``` #### 4. 常量定义 - **定义常量**:使用`const`关键字定义常量可以提高代码的可维护性和易读性。 ```as3 public const APPLICATION_PUBLISHER:String = "Company, Inc."; ``` #### 5. 类声明 - **使用`final`关键字**:在不打算让其他类继承的情况下,可以在类声明前加上`final`关键字。 ```as3 public final class StringUtils ``` #### 6. 方法命名 - **方法名称的影响**:方法名称的长度对性能影响不大,但过长的方法名称可能会影响代码的可读性。 ```as3 someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch(); ``` #### 7. `if` 语句与 `switch` 语句的选择 - **选择合适的条件语句**:根据不同的场景选择使用`if`语句或`switch`语句。一般来说,`switch`适用于多个离散选项的情况,而`if`则适用于更复杂的逻辑判断。 ```as3 if (condition) { // 处理条件 } switch (condition) { case "A": // 处理A情况 break; case "B": // 处理B情况 break; } ``` #### 8. 条件判断顺序 - **优化条件判断**:将最有可能发生的条件放在前面可以提高程序执行效率。 ```as3 if (conditionThatHappensAlot) { // 处理频繁发生的条件 } else if (conditionThatHappensSomtimes) { // 处理有时发生的条件 } else { // 处理其他情况 } ``` #### 9. 数据类型选择 - **整型与无符号整型**:在Flex中,`int`和`uint`数据类型的使用取决于具体的需求。通常情况下,如果需要支持负数,则使用`int`;反之,使用`uint`可以节省内存并提高性能。 ```as3 var footerHex:uint = 0x00ccff; ``` #### 10. 循环变量类型 - **循环变量类型**:在循环中使用`int`类型作为循环变量可以提高执行速度。 ```as3 for (var i:int = 0; i < n; i++) { // 循环体 } ``` #### 11. 数值类型转换 - **整型与浮点型**:在进行数值操作时,需要注意类型转换。例如,将浮点型转换为整型时会丢失小数部分。 ```as3 var decimal:Number = 14.654; var decimal:int = 14.654; // 结果为14 ``` #### 12. 表达式计算 - **简化表达式**:简化复杂的数学表达式可以提高计算速度。例如,在循环外部预先计算不变的部分。 ```as3 declare: toRadians = a * 180 / Math.PI; ``` #### 13. 循环中的数组长度 - **缓存数组长度**:在循环中多次访问数组长度会降低性能。建议将数组长度缓存在一个变量中,然后在循环中使用该变量。 ```as3 var len:int = myArray.length; for (var i = 0; i < len; i++) {} ``` #### 14. 正则表达式使用 - **正则表达式验证**:使用正则表达式验证字符串格式是一种高效的方法。例如,在验证邮政编码时可以使用正则表达式。 ```as3 private var regEx:RegExp = /^[A-Z][0-9][A-Z][0-9][A-Z][0-9]$/i; private function validatePostal(event:Event):void { if (regEx.test(zipTextInput.text)) { // 处理无效输入的情况 } } ``` 以上内容涵盖了Flex开发过程中常见的一些性能优化技巧。通过对这些技巧的理解和应用,可以显著提高Flex应用程序的性能。
转自:http://blog.csdn.net/jiabangok/archive/2009/04/29/4131561.aspx
1、当创建一个数组的时候避免用new操作符用 var a:Array = [];而不用var a:Array = 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、从一个数组中取得值的速度是设置一个数组值的两倍快: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、在整个程序的生命周期中都不会改变的变量用const定义常量:
public const APPLICATION_PUBLISHER : String = "Company, Inc.";
8、当一个类不需要有之类的时候应该讲该类声明为final类型的:
public final class StringUtils
9、变量和方法的长度在As3中并不影响什么性能,但在别的语言中可能就有影响:
someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch();
10、将语句写在一行上面并不会影响AS3程序的性能,但在别的语言中却有影响:
var i=0; j=10; k=200;
11、在内存占用上面if语句和switch语句并没有什么区别:
语句:
if ( condition )
{
// handle condition
}
和语句:
switch ( condition )
{
case "A":
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 23
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助