sum+=args[i];
}
return(sum/args.length);
}
另请参见argumentsobject
AS3
namespace
定义核心ActionScript类的方法和属性,将其作为固定属性而非原型属性。
在将“-as3”编译器选项设置为true时,(whichisthedefaultsettinginFlexBuilder2)将为所有核心类自动打开AS3命名空间。
这意味着核心类的单个实例将使用固定的属性和方法,而不是使用同一属性和方法附加到此类的原型对象上的版本。
使用固定属性通常可以提供更好的性能,但将无法向后兼容ECMAScript第3版语言规范(ECMA-262)。
另请参见Objectclass
break
statement
用法
break[label]
语言版本:
ActionScript3.0
运行时版本:
FlashPlayer9
出现在循环(for、for..in、foreach..in、do..while或while)内,或出现在与switch语句中的特定情况相关联的语句块内。
当在循环中使用时,break语句指示Flash跳过循环体的其余部分,停止循环动作,并执行循环语句后面的语句。
在switch中使用break语句时,该语句将指示Flash跳过此case块中的其余语句,并跳到包含它的switch语句后面的第一个语句。
在嵌套循环中,break语句只跳过当前循环的其余部分,而不是中断整个系列的嵌套循环。
若要中断整个系列的嵌套循环,请使用label或try..catch..finally。
break语句可以具有可选标签,该标签必须与外部标记语句相匹配。
使用与外部语句的标签不匹配的标签是一种语法错误。
可以使用标记的break语句中断多层嵌套循环语句、switch语句,或block语句。
有关示例,请参见label语句条目。
参数
label:
*—与语句关联的标签名称。
示例
如何使用示例
下例使用break以退出一个循环(如果没有该语句,该循环为无限循环):
vari:
int=0;
while(true){
trace(i);
if(i>=10){
break;//thiswillterminate/exittheloop
}
i++;
}
/*
0
1
2
3
4
5
6
7
8
9
10*/
另请参见
do..while
for
for..in
foreach..in
label
while
case
statement
用法
casejumpTarget:
statements
语言版本:
ActionScript3.0
运行时版本:
FlashPlayer9
定义switch语句的跳转目标。
如果jumpTarget参数等于使用全等运算符(===)的switch语句的expression参数,则FlashPlayer将执行statements参数中的语句,直到遇到一个break语句或直到switch语句结束。
如果在switch语句外部使用case语句,会产生错误,而且脚本不能编译。
注意:
在statements参数的结尾应始终使用break语句。
如果省略statements参数中的break语句,则FlashPlayer会继续执行下一条case语句,而不是退出switch语句。
参数
jumpTarget:
*—任何表达式。
statements:
*—如果jumpTarget和switch语句中的条件表达式匹配,则执行语句。
示例
如何使用示例
下例定义了switch语句thisMonth的跳转目标。
如果thisMonth等于case语句中的表达式,则执行该语句。
varthisMonth:
int=newDate().getMonth();
switch(thisMonth){
case0:
trace("January");
break;
case1:
trace("February");
break;
case5:
case6:
case7:
trace("Somesummermonth");
break;
case8:
trace("September");
break;
default:
trace("someothermonth");
}
另请参见
break
switch
class
definitionkeyword
用法
[dynamic][public|internal][final]classclassName[extendssuperClass][implementsinterfaceName[,interfaceName...]]{
//此处是类定义
}
语言版本:
ActionScript3.0
运行时版本:
FlashPlayer9
定义一个类,它允许实例化共享您定义的方法和属性的对象。
例如,如果您正开发一个发票跟踪系统,则可以创建一个Invoice类,它定义每个发票应具有的所有方法和属性。
然后您可以使用newInvoice()命令来创建Invoice对象。
每个ActionScript源文件只能包含一个对其它源文件或脚本可见的类。
外部可见的类可以是公共类或内部类,必须在包语句内定义。
如果在同一个文件中包括其它类,则该类必须放在包语句之外、文件结尾处。
外部可见的类的名称必须与包含该类的ActionScript源文件的名称匹配。
源文件名称必须是类的名称加上文件扩展名.as。
例如,如果您将一个类命名为Student,则定义该类的文件必须被命名为Student.as。
您不能嵌套类定义;即,不能在一个类定义内定义其它类。
可以定义构造函数方法,每次创建该类的新实例时执行该方法。
该构造函数方法的名称必须与类的名称匹配。
如果未定义构造函数方法,则为您创建一个默认的构造函数。
若要表示对象可在运行时添加和访问动态属性,请在class语句前面放置dynamic关键字。
若要声明一个类实现一个接口,请使用implements关键字。
若要创建一个类的子类,请使用extends关键字。
(某一类只能扩展一个类,但可以实现多个接口。
)您可以在一个语句中使用implements和extends。
下面的示例将说明implements和extends关键字的典型用法:
classCimplementsInterface_i,Interface_j//OK
classCextendsClass_dimplementsInterface_i,Interface_j//OK
classCextendsClass_d,Class_e//notOK
参数
className:
Class—类的完全限定名称。
示例
如何使用示例
下面的示例创建一个名为Plant的类。
Plant构造函数采用两个参数。
//FilenamePlant.as
package{
publicclassPlant{
//Definepropertynamesandtypes
privatevar_leafType:
String;
privatevar_bloomSeason:
String;
//Followinglineisconstructor
//becauseithasthesamenameastheclass
publicfunctionPlant(param_leafType:
String,param_bloomSeason:
String){
//AssignpassedvaluestopropertieswhennewPlantobjectiscreated
_leafType=param_leafType;
_bloomSeason=param_bloomSeason;
}
//Createmethodstoreturnpropertyvalues,becausebestpractice
//recommendsagainstdirectlyreferencingapropertyofaclass
publicfunctiongetleafType():
String{
return_leafType;
}
publicfunctiongetbloomSeason():
String{
return_bloomSeason;
}
}
}
在脚本中,使用new运算符来创建一个Plant对象。
varpineTree:
Plant=newPlant("Evergreen","N/A");
//Confirmparameterswerepassedcorrectly
trace(pineTree.leafType);
trace(pineTree.bloomSeason);
另请参见
dynamic
extends
final
internal
public
const
definitionkeyword
用法
constidentifier=value
语言版本:
ActionScript3.0
运行时版本:
FlashPlayer9
指定一个常量,它是只能赋值一次的变量。
附加后跟数据类型的colon(:
)字符可以严格指定常量的类型。
参数
identifier:
*—常量的标识符。
示例
如何使用示例
下例说明,如果尝试多次为一个常量赋值将发生错误。
constMIN_AGE:
int=21;
MIN_AGE=18;//error
下例说明,如果常量是一个数组,仍然可以调用Array类方法,包括Array.push()。
但是无法分配新数组文本。
constproduct_array:
Array=newArray("Studio","Dreamweaver","Flash","ColdFusion","Contribute","Breeze");
product_array.push("Flex");//arrayoperationsareallowed
product_array=["Other"];//assignmentisanerror
trace(product_array);
另请参见
var
continue
statement
用法
continue[label]
语言版本:
ActionScript3.0
运行时版本:
FlashPlayer9
跳过最内层循环中的所有剩余语句并开始循环的下一次遍历,就像控制正常传递到了循环结尾一样。
continue语句在循环外不起作用。
在嵌套循环中,使用可选的label参数以跳过最内层以内的循环。
continue语句可以具有可选标签,该标签必须与外部标记语句相匹配。
使用与外部语句的标签不匹配的标签是一种语法错误。
使用标记的continue语句可以跳过多层嵌套循环语句。
示例
如何使用示例
在下面的while循环中,continue语句用于遇到3的整数倍时跳过循环体的其余部分,并跳转到循环的顶端(在该处进行条件测试):
vari:
int=0;
while(i<10){
if(i%3==0){
i++;
continue;
}
trace(i);
i++;
}
在for循环中,还可以使用continue语句以跳过循环体的其余部分。
在下例中,如果i%3等于0,则跳过trace(i)语句:
for(vari:
int=0;i<10;i++){
if(i%3==0){
continue;
}
trace(i);
}
另请参见
do..while
for
for..in
foreach..in
label
while
default
statement
用法
default:
statements
语言版本:
ActionScript3.0
运行时版本:
FlashPlayer9
定义switch语句的默认情况。
如果switch语句的expression参数不等于(使用全等运算符[===])给定switch语句的case关键字后的任何expression参数,则执行这些语句。
switch语句不需要defaultcase语句。
defaultcase语句也不一定要出现在列表的最后。
如果在switch语句外使用default语句,将会产生错误,并且脚本不能编译。
参数
statements:
*—任何语句。
示例
如何使用示例
在下例中,如果某天是星期六或星期日,则不调用任何case语句,因此将转为执行default语句。
vardayOfWeek:
int=newDate().getDay();
switch(dayOfWeek){
case1:
trace("Monday");
break;
case2:
trace("Tu