在 ActionScript 中使用某个对象之前,首先该对象必须存在。创建对象的步骤之一是声明变量;然而,声明变量仅会在计算机内存中创建一个空位置。在尝试使用或操作变量之前,务必为变量指定实际值(即创建一个对象并将其存储在变量中)。创建对象的过程称为实例化对象。换句话说,是创建特定类的实例。
有一种创建对象实例的简单方法完全不涉及 ActionScript。在 Flash Professional 中,将一个影片剪辑元件、按钮元件或文本字段放置到舞台上并为其指定实例名称。Flash Professional 将自动使用该实例名称声明变量、创建对象实例并将该对象存储到变量中。同样,在 Flex 中,您通过对 MXML 标签进行编码或将组件放置到 Flash Builder Design 模式的编辑器中,在 MXML 中创建组件。为该组件分配 ID 后,该 ID 就成为包含该组件实例的 ActionScript 变量的名称。
不过,您并非总是希望以可视方式创建对象,而又不能创建非可视对象。可以通过其它若干种方法仅使用 ActionScript 创建对象实例。
借助几个 ActionScript 数据类型,可以使用文本表达式(直接写入 ActionScript 代码的值)创建实例。下面给出了一些示例:
文本数字值(直接输入数字):
var someNumber:Number = 17.239;
var someNegativeInteger:int = -53;
var someUint:uint = 22;
文本字符串值(用双引号将文本引起来):
var firstName:String = "George";
var soliloquy:String = "To be or not to be, that is the question...";
文本布尔值(使用字面值 true 或 false):
var niceWeather:Boolean = true;
var playingOutside:Boolean = false;
文本数组值(在中括号中包含以逗号分隔的值列表):
var seasons:Array = ["spring", "summer", "autumn", "winter"];
文本 XML 值(直接输入 XML):
var employee:XML = <employee>
<firstName>Harold</firstName>
<lastName>Webster</lastName>
</employee>;
ActionScript 还为 Array、RegExp、Object 和 Function 数据类型定义了文本表达式。
为任一数据类型创建实例的最常用方法是使用带有类名称的 new 运算符,如下所示:
var raceCar:MovieClip = new MovieClip();
var birthday:Date = new Date(2006, 7, 9);
使用 new 运算符创建对象通常称为“调用类的构造函数”。构造函数是在创建类的实例的过程中调用的一种特殊方法。请注意,在使用此方法创建实例时,在类名称后加上小括号。有时要在小括号中指定参数值。调用方法时还需要完成另外两项操作。
甚至对于可使用文本表达式创建实例的数据类型,也可以使用 new 运算符来创建对象实例。例如,下面的两行代码执行相同的操作:
var someNumber:Number = 6.33;
var someNumber:Number = new Number(6.33);
熟悉使用 new ClassName() 创建对象的方法是非常重要的。许多 ActionScript 数据类型没有直观的表示形式。因此,无法通过将项目放置到 Flash Professional 舞台或 Flash Builder 的 MXML 编辑器的设计模式来创建。您只能使用 new 运算符在 ActionScript 中创建这些数据类型的实例。
Adobe Flash Professional
在 Flash Professional 中,new 运算符还可用于创建已在库中定义、但没有放到舞台上的影片剪辑元件的实例。