Flash CS3 文档 |
|||
| ActionScript 3.0 编程 > ActionScript 语言及其语法 > 数据类型 | |||
“数据类型”用来定义一组值。例如,Boolean 数据类型所定义的一组值中仅包含两个值:true 和 false。除了 Boolean 数据类型外,ActionScript 3.0 还定义了其它几个常用的数据类型,如 String、Number 和 Array。您可以使用类或接口来自定义一组值,从而定义自己的数据类型。ActionScript 3.0 中的所有值均是对象,而与它们是基元值还是复杂值无关。
“基元值”是一个属于下列数据类型之一的值:Boolean、int、Number、String 和 uint。基元值的处理速度通常比复杂值的处理速度快,因为 ActionScript 按照一种尽可能优化内存和提高速度的特殊方式来存储基元值。
|
注意 |
|
关注技术细节的读者会发现,ActionScript 在内部将基元值作为不可改变的对象进行存储。这意味着按引用传递与按值传递同样有效。这可以减少内存的使用量并提高执行速度,因为引用通常比值本身小得多。 |
“复杂值”是指基元值以外的值。定义复杂值的集合的数据类型包括:Array、Date、Error、Function、RegExp、XML 和 XMLList。
许多编程语言都区分基元值及其包装对象。例如,Java 中有一个 int 基元值和一个包装它的 java.lang.Integer 类。Java 基元值不是对象,但它们的包装是对象,这使得基元值对于某些运算非常有用,而包装对象则更适合于其它运算。在 ActionScript 3.0 中,出于实用的目的,不对基元值及其包装对象加以区分。所有的值(甚至基元值)都是对象。Flash Player 将这些基元类型视为特例 ― 它们的行为与对象相似,但是不需要创建对象所涉及的正常开销。这意味着下面的两行代码是等效的:
var someInt:int = 3; var someInt:int = new int(3);
上面列出的所有基元数据类型和复杂数据类型都是由 ActionScript 3.0 核心类定义的。通过 ActionScript 3.0 核心类,可以使用字面值(而非 new 运算符)创建对象。例如,可以使用字面值或 Array 类的构造函数来创建数组,如下所示:
var someArray:Array = [1, 2, 3]; // 字面值 var someArray:Array = new Array(1,2,3); // Array 构造函数
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000044.html