编程基础

ActionScript 是一种编程语言,因此,如果您先弄懂一些常规计算机编程概念,对您学习 ActionScript 会很有帮助。

计算机程序的用途

首先,对计算机程序的概念及其用途有一个概念性的认识是非常有用的。计算机程序主要包括两个方面:

  • 程序是计算机执行的一系列指令或步骤。

  • 每一步最终都涉及到对某一段信息或数据的处理。

通常认为,计算机程序只是您提供给计算机并让它逐步执行的指令列表。每个单独的指令都称为语句。在 ActionScript 中,每个语句都以分号结尾。

实质上,程序中指定的指令所做的全部工作是操作存储在计算机内存中的一些数据位。举个简单的例子:指示计算机将两个数字相加,并将结果存储在内存中。再举个比较复杂的例子:假设在屏幕上绘制了一个矩形,您希望写个程序,将此矩形移动到屏幕上的其它位置。计算机会记住有关此矩形的某些信息:所处位置的 x、y 坐标,高度和宽度,颜色等等。这些信息位中的每一位都存储在计算机内存中的某个位置。程序要将此矩形移动到其它位置,可能会包含如下步骤“将 X 坐标更改为 200;将 Y 坐标更改为 150”。换句话说,程序将指定新的 X 和 Y 坐标值。计算机在后台根据此数据进行处理,将这些值实际应用到计算机屏幕上显示的图像上。不过,只要基本了解“移动屏幕上的矩形”这个过程仅涉及到更改计算机内存中的数据位就够了。

变量和常量

编程主要涉及更改计算机内存中的信息。因此,要有一种表示单条信息的方式,这在程序中很重要。变量是一个名称,表示计算机内存中的值。当编写语句来处理操作值时,写入变量名来代替值。计算机在查看程序中的变量名时,都将查看内存并使用在内存中找到的值。例如,如果两个名为 value1value2 的变量分别包含一个数字,则可以编写如下语句将这两个数字相加:

value1 + value2

当实际执行这些步骤时,计算机将查看每个变量中的值并将它们相加。

在 ActionScript 3.0 中,一个变量实际上包含三个不同部分:

  • 变量的名称

  • 可以存储在变量中的数据的类型

  • 存储在计算机内存中的实际值

您已了解计算机如何使用名称作为值的占位符。数据类型也非常重要。当您在 ActionScript 中创建变量时,请指定此变量打算支持的特定数据类型。此后,程序的指令在此变量中仅可存储该类型的数据。您可以使用与值的数据类型相关联的特定特性处理值。在 ActionScript 中,若要创建一个变量(称为声明变量),应使用 var 语句:

var value1:Number;

此示例要求计算机创建名为 value1 的变量,此变量仅接受支持 Number 数据。(“Number”是 ActionScript 中定义的特定数据类型。)您还可以立即在变量中存储一个值:

var value2:Number = 17;

Adobe Flash Professional

在 Flash Professional 中,还有另外一种变量声明方法。在将一个影片剪辑元件、按钮元件或文本字段放置在舞台上时,可以在属性检查器中为它指定一个实例名称。Flash Professional 在后台创建与实例同名的变量。可在 ActionScript 代码中使用该名称表示该舞台项。例如,假设舞台上有一个影片剪辑元件,并为其指定了实例名称 rocketShip。只要您在 ActionScript 代码中使用变量 rocketShip,实际上就是在操作该影片剪辑。

常量类似于变量。它是使用指定的数据类型表示计算机内存中的值的名称。不同之处在于,在 ActionScript 应用程序运行期间只能为常量赋值一次。一旦为某个常量赋值之后,该常量的值在整个应用程序运行期间都保持不变。声明常量的语法与声明变量的语法几乎相同。唯一的不同之处在于,需要使用关键字 const,而不是关键字 var

const SALES_TAX_RATE:Number = 0.07;

如需定义在整个项目中多个位置使用且正常情况下不会更改的值,则常量非常有用。使用常量而不是字面值可提高代码的可读性。例如,我们看一下同一代码的两种版本。一个用 SALES_TAX_RATE 与价格相乘。另一个则用 0.07 与价格相乘。使用 SALES_TAX_RATE 常量的版本较易理解。另外,假设用常量定义的值确实需要更改。如果您使用常量在整个项目中表示特定值,可以在一处位置更改此值(常量声明)。相反,如果您使用硬编码的字面值,则必须在各个位置更改此值。

数据类型

在 ActionScript 中,您可以将很多数据类型用作所创建的变量的数据类型。某些数据类型可以看作“简单”或“基础”数据类型:

  • String:文本值,例如,一个名称或书中某一章的文字

  • Numeric:对于 numeric 型数据,ActionScript 3.0 包含三种特定的数据类型:

    • Number:任何数值,包括有小数部分或没有小数部分的值

    • Int:一个整数(不带小数部分的整数)

    • Uint:一个“无符号”整数,即不能为负数的整数

  • Boolean:一个 true 或 false 值,例如开关是否开启或两个值是否相等

简单数据类型表示单条信息:例如,单个数字或单个文本序列。不过,ActionScript 中定义的大多数数据类型可能是复杂数据类型。它们表示单一容器中的一组值。例如,数据类型为 Date 的变量表示单一值(某个时刻)。然而,该日期值以多个值表示:天、月、年、小时、分钟、秒,等等,这些值都为单独的数字。人们一般认为日期为单一值,您可以通过创建 Date 变量将日期视为单一值。不过,在计算机内部,计算机认为它是共同定义一个日期的一组值。

大部分内置数据类型以及编程人员定义的数据类型都是复杂数据类型。您可能知道下面的一些复杂数据类型:

  • MovieClip:影片剪辑元件

  • TextField:动态文本字段或输入文本字段

  • SimpleButton:按钮元件

  • Date:有关时间中的某个片刻的信息(日期和时间)

经常用作数据类型的同义词的两个词是类和对象。只是数据类型的定义。它像一个适用于某数据类型的所有对象的模板,就好像说“示例数据类型的所有变量都具有以下特性:A、B 和 C”。另一方面,对象只是类的实际实例。例如,数据类型为 MovieClip 的变量可以被描述为 MovieClip 对象。下面几条陈述虽然表达的方式不同,但意思是相同的:

  • 变量 myVariable 的数据类型是 Number。

  • 变量 myVariable 是一个 Number 实例。

  • 变量 myVariable 是一个 Number 对象。

  • 变量 myVariable 是 Number 类的一个实例。