Flash CS3 文档 |
|||
| ActionScript 3.0 编程 > ActionScript 语言及其语法 > 语法 | |||
语言的语法定义了一组在编写可执行代码时必须遵循的规则。
ActionScript 3.0 是一种区分大小写的语言。只是大小写不同的标识符会被视为不同。例如,下面的代码创建两个不同的变量:
var num1:int; var Num1:int;
可以通过点运算符 (.) 来访问对象的属性和方法。使用点语法,可以使用后跟点运算符和属性名或方法名的实例名来引用类的属性或方法。以下面的类定义为例:
class DotExample
{
public var prop1:String;
public function method1():void {}
}
借助于点语法,可以使用在如下代码中创建的实例名来访问 prop1 属性和 method1() 方法:
var myDotEx:DotExample = new DotExample(); myDotEx.prop1 = “hello”; myDotEx.method1();
定义包时,可以使用点语法。可以使用点运算符来引用嵌套包。例如,EventDispatcher 类位于一个名为 events 的包中,该包嵌套在名为 flash 的包中。可以使用下面的表达式来引用 events 包:
flash.events
还可以使用此表达式来引用 EventDispatcher 类:
flash.events.EventDispatcher
ActionScript 3.0 不支持斜杠语法。在早期的 ActionScript 版本中,斜杠语法用于指示影片剪辑或变量的路径。
“字面值”是直接出现在代码中的值。下面的示例都是字面值:
17 "hello" -3 9.4 null undefined true false
字面值还可以组合起来构成复合字面值。数组文本括在中括号字符 ([]) 中,各数组元素之间用逗号隔开。
数组文本可用于初始化数组。下面的几个示例显示了两个使用数组文本初始化的数组。您可以使用 new 语句将复合字面值作为参数传递给 Array 类构造函数,但是,您还可以在实例化下面的 ActionScript 核心类的实例时直接赋予字面值:Object、Array、String、Number、int、uint、XML、XMLList 和 Boolean。
// 使用 new 语句。 var myStrings:Array = new Array(["alpha", "beta", "gamma"]); var myNums:Array = new Array([1,2,3,5,8]); // 直接赋予字面值。 var myStrings:Array = ["alpha", "beta", "gamma"]; var myNums:Array = [1,2,3,5,8];
字面值还可用来初始化通用对象。通用对象是 Object 类的一个实例。对象字面值括在大括号 ({}) 中,各对象属性之间用逗号隔开。每个属性都用冒号字符 (:) 进行声明,冒号用于分隔属性名和属性值。
可以使用 new 语句创建一个通用对象并将该对象的字面值作为参数传递给 Object 类构造函数,也可以在声明实例时直接将对象字面值赋给实例。下面的示例创建一个新的通用对象,并使用三个值分别设置为 1、2 和 3 的属性(propA、propB 和 propC)初始化该对象:
// 使用 new 语句。
var myObject:Object = new Object({propA:1, propB:2, propC:3});
// 直接赋予字面值。
var myObject:Object = {propA:1, propB:2, propC:3};
有关详细信息,请参阅字符串基础知识、正则表达式基础知识和初始化 XML 变量。
可以使用分号字符 (;) 来终止语句。如果您省略分号字符,则编译器将假设每一行代码代表一条语句。由于很多程序员都习惯使用分号来表示语句结束,因此,如果您坚持使用分号来终止语句,则代码会更易于阅读。
使用分号终止语句可以在一行中放置多个语句,但是这样会使代码变得难以阅读。
在 ActionScript 3.0 中,可以通过三种方式来使用小括号 (())。首先,可以使用小括号来更改表达式中的运算顺序。组合到小括号中的运算总是最先执行。例如,小括号可用来改变如下代码中的运算顺序:
trace(2 + 3 * 4); // 14 trace( (2 + 3) * 4); // 20
第二,可以结合使用小括号和逗号运算符 (,) 来计算一系列表达式并返回最后一个表达式的结果,如下面的示例所示:
var a:int = 2; var b:int = 3; trace((a++, b++, a+b)); // 7
第三,可以使用小括号来向函数或方法传递一个或多个参数,如下面的示例所示,此示例向 trace() 函数传递一个字符串值:
trace("hello"); // hello
ActionScript 3.0 代码支持两种类型的注释:单行注释和多行注释。这些注释机制与 C++ 和 Java 中的注释机制类似。编译器将忽略标记为注释的文本。
单行注释以两个正斜杠字符 (//) 开头并持续到该行的末尾。例如,下面的代码包含一个单行注释:
var someNumber:Number = 3; // 单行注释
多行注释以一个正斜杠和一个星号 (/*) 开头,以一个星号和一个正斜杠 (*/) 结尾。
/* 这是一个可以跨 多行代码的多行注释。 */
“保留字”是一些单词,因为这些单词是保留给 ActionScript 使用的,所以,不能在代码中将它们用作标识符。保留字包括“词汇关键字”,编译器将词汇关键字从程序的命名空间中删除。如果您将词汇关键字用作标识符,则编译器会报告一个错误。下表列出了 ActionScript 3.0 词汇关键字:
|
as |
break |
case |
catch |
|
class |
const |
continue |
default |
|
delete |
do |
else |
extends |
|
false |
finally |
for |
function |
|
if |
implements |
import |
in |
|
instanceof |
interface |
internal |
is |
|
native |
new |
null |
package |
|
private |
protected |
public |
return |
|
super |
switch |
this |
throw |
|
to |
true |
try |
typeof |
|
use |
var |
void |
while |
|
with |
|
|
|
有一小组名为“句法关键字”的关键字,这些关键字可用作标识符,但是在某些上下文中具有特殊的含义。下表列出了 ActionScript 3.0 句法关键字:
|
each |
get |
set |
namespace |
|
include |
dynamic |
final |
native |
|
override |
static |
|
|
还有几个有时称为“供将来使用的保留字”的标识符。这些标识符不是为 ActionScript 3.0 保留的,但是其中的一些可能会被采用 ActionScript 3.0 的软件视为关键字。您可以在自己的代码中使用其中的许多标识符,但是 Adobe 不建议您使用它们,因为它们可能会在以后的 ActionScript 版本中作为关键字出现。
|
abstract |
boolean |
byte |
cast |
|
char |
debugger |
double |
enum |
|
export |
float |
goto |
intrinsic |
|
long |
prototype |
short |
synchronized |
|
throws |
to |
transient |
type |
|
virtual |
volatile |
|
|
ActionScript 3.0 支持 const 语句,该语句可用来创建常量。常量是指具有无法改变的固定值的属性。只能为常量赋值一次,而且必须在最接近常量声明的位置赋值。例如,如果将常量声明为类的成员,则只能在声明过程中或者在类构造函数中为常量赋值。
下面的代码声明两个常量。第一个常量 MINIMUM 是在声明语句中赋值的,第二个常量 MAXIMUM 是在构造函数中赋值的。
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
public function A()
{
MAXIMUM = 10;
}
}
var a:A = new A();
trace(a.MINIMUM); // 0
trace(a.MAXIMUM); // 10
如果您尝试以其它任何方法向常量赋予初始值,则会出现错误。例如,如果您尝试在类的外部设置 MAXIMUM 的初始值,将会出现运行时错误。
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
}
var a:A = new A();
a["MAXIMUM"] = 10; // 运行时错误
Flash Player API 定义了一组广泛的常量供您使用。按照惯例,ActionScript 中的常量全部使用大写字母,各个单词之间用下划线字符 ( _) 分隔。例如,MouseEvent 类定义将此命名惯例用于其常量,其中每个常量都表示一个与鼠标输入有关的事件:
package flash.events{public class MouseEvent extends Event{public static const CLICK:String = "click";public static const DOUBLE_CLICK:String = "doubleClick";public static const MOUSE_DOWN:String = "mouseDown";public static const MOUSE_MOVE:String = "mouseMove";...}}
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000049.html