flash_ actionscript3.0 (语句、关键字和指令).doc_第1页
flash_ actionscript3.0 (语句、关键字和指令).doc_第2页
flash_ actionscript3.0 (语句、关键字和指令).doc_第3页
flash_ actionscript3.0 (语句、关键字和指令).doc_第4页
flash_ actionscript3.0 (语句、关键字和指令).doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flash ActionScript 3.0 语言和组件参考(语句、关键字和指令)语句是在运行时执行或指定动作的语言元素。例如,return 语句会为执行该语句的函数返回一个结果。if 语句对条件进行计算,以确定应采取的下一个动作。switch 语句创建 ActionScript 语句的分支结构。 属性关键字更改定义的含义,可以应用于类、变量、函数和命名空间定义。定义关键字用于定义实体,例如变量、函数、类和接口。主表达式关键字表示文本值。若要获得保留字的列表,请参见ActionScript 3.0 编程。指令包含语句和定义,在编译时或运行时起作用。下表中将既不是语句也不是定义的指令标记为指令。语句 break出现在循环(for、for.in、for each.in、do.while 或 while)内,或出现在与 switch 语句中的特定情况相关联的语句块内。case定义 switch 语句的跳转目标。continue跳过最内层循环中所有其余的语句并开始循环的下一次遍历,就像控制正常传递到了循环结尾一样。default定义 switch 语句的默认情况。do.while与 while 循环类似,不同之处是在对条件进行初始计算前执行一次语句。else指定当 if 语句中的条件返回 false 时要运行的语句。for计算一次 init(初始化)表达式,然后开始一个循环序列。for.in遍历对象的动态属性或数组中的元素,并对每个属性或元素执行 statement。for each.in遍历集合的项目,并对每个项目执行 statement。if计算条件以确定下一条要执行的语句。label将语句与可由 break 或 continue 引用的标识符相关联。return导致立即返回执行调用函数。super调用方法或构造函数的超类或父版本。switch根据表达式的值,使控制转移到多条语句的其中一条。throw生成或抛出(使用 throw 语句)一个可由 catch 代码块处理或捕获的错误。try.catch.finally包含一个代码块,在其中可能会发生错误,然后对该错误进行响应。while计算一个条件,如果该条件的计算结果为 true,则会执行一条或多条语句,之后循环会返回并再次计算条件。with建立要用于执行一条或多条语句的默认对象,从而潜在地减少需要编写的代码量。属性关键字 dynamic指定类的实例可具有在运行时添加的动态属性。final指定不能覆盖方法或者不能扩展类。internal指定类、变量、常量或函数可用于同一包中的任何调用者。native指定函数或方法由 Flash Player 以本机代码的形式实现。override指定用一种方法替换继承的方法。private指定变量、常量、方法或命名空间仅可供定义它的类使用。protected指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类。public指定类、变量、常量或方法可用于任何调用者。static指定变量、常量或方法属于类,而不属于类的实例。定义关键字 . (rest) parameter指定函数将接受任意多个以逗号分隔的参数。class定义一个类,它允许实例化共享您定义的方法和属性的对象。const指定一个常量,它是只能赋值一次的变量。extends定义一个作为其它类的子类的类。function包含为执行特定任务而定义的一组语句。get定义一个 getter,它是一种可像属性一样读取的方法。implements指定一个类可实现一个或多个接口。interface定义接口。namespace允许您控制定义的可见性。package允许您将代码组织为可由其它脚本导入的离散组。set定义一个 setter,它是一种在公共接口中作为属性出现的方法。var指定一个变量。指令 default xml namespacedefault xml namespace 指令可将默认的命名空间设置为用于 XML 对象。 import使外部定义的类和包可用于您的代码。include包括指定文件的内容,就像该文件中的命令是调用脚本的一部分一样。use namespace使指定的命名空间添加到打开的命名空间集中。命名空间 AS3定义核心 ActionScript 类的方法和属性,将其作为固定属性而非原型属性。flash_proxy定义 Proxy 类的方法。object_proxy定义 ObjectProxy 类的方法。主表达式关键字 false表示 false 的布尔值。null一个可以分配给变量的或由未提供数据的函数返回的特殊值。this对方法的包含对象的引用。true表示 true 的布尔值。语句、关键字和指令详细信息. (rest) parameterdefinition keyword用法 function functionName(parameter0, parameter1, .rest) / 语句 语言版本:ActionScript 3.0运行时版本:Flash Player 9指定函数将接受任意多个以逗号分隔的参数。参数列表成为了在整个函数体中可用的数组。在参数声明中,数组的名称在 . 字符后指定。参数可以拥有保留字以外的任意名称。 如果与其它参数共同使用,则 .(其余的)参数声明必须是最后指定的参数。只有传递给函数的参数数目超过其它参数的数目时,才会填充 .(其余的)参数数组。逗号分隔参数列表中的每一个参数都将放置在该数组的一个元素中。如果您传递了 Array 类的实例,则整个数组会放置到 .(其余的)参数数组的单个元素中。使用此参数会使 arguments 对象不可用。尽管 .(其余的)参数提供了与 arguments 数组和 arguments.length 属性相同的功能,但是未提供与由 arguments.callee 提供的功能类似的功能。使用 .(其余的)参数之前,请确保不需要使用 arguments.callee。参数 rest:* 标识符表示传递至函数的参数数组的名称。不需要将参数命名为 rest;它可以具有不同于关键字的任意名称。可以将 .(rest) 参数的数据类型指定为 Array,但是这样可能会产生混淆,因为该参数可接受逗号分隔值列表,该列表与 Array 类的实例不同。 示例如何使用示例 下例在两个不同函数中使用.(其余的)参数。第一个函数 traceParams 只对 rest 数组中每一个参数调用 trace() 函数。第二个函数 average() 调用参数列表并返回平均值。第二个函数还使用了该参数的其它名称 args。 package import flash.display.MovieClip; public class RestParamExample extends MovieClip public function RestParamExample() traceParams(100, 130, two); / 100,130,two trace(average(4, 7, 13); / 8 function traceParams(. rest) trace(rest); function average(. args) : Number var sum:Number = 0; for (var i:uint = 0; i = 10) break; / this will terminate/exit the loop i+; /*0 1 2 3 4 5 6 7 8 9 10*/另请参见 r each.inlabelwhilecasestatement用法 case jumpTarget: statements语言版本:ActionScript 3.0运行时版本:Flash Player 9定义 switch 语句的跳转目标。如果 jumpTarget 参数等于使用全等运算符 (=) 的 switch 语句的 expression 参数,则 Flash Player 将执行 statements 参数中的语句,直到遇到一个 break 语句或直到 switch 语句结束。 如果在 switch 语句外部使用 case 语句,会产生错误,而且脚本不能编译。注意:在 statements 参数的结尾应始终使用 break 语句。如果省略 statements 参数中的 break 语句,则 Flash Player 会继续执行下一条 case 语句,而不是退出 switch 语句。参数 jumpTarget:* 任何表达式。 statements:* 如果 jumpTarget 和 switch 语句中的条件表达式匹配,则执行语句。 示例如何使用示例 下例定义了 switch 语句 thisMonth 的跳转目标。如果 thisMonth 等于 case 语句中的表达式,则执行该语句。 var thisMonth:int = new Date().getMonth(); switch (thisMonth) case 0 : trace(January); break; case 1 : trace(February); break; case 5 : case 6 : case 7 : trace(Some summer month); break; case 8 : trace(September); break; default : trace(some other month); 另请参见 breakswitchclassdefinition keyword用法 dynamic public | internal final class className extends superClass implements interfaceName, interfaceName. / 此处是类定义语言版本:ActionScript 3.0运行时版本:Flash Player 9定义一个类,它允许实例化共享您定义的方法和属性的对象。例如,如果您正开发一个发票跟踪系统,则可以创建一个 Invoice 类,它定义每个发票应具有的所有方法和属性。然后您可以使用 new Invoice() 命令来创建 Invoice 对象。 每个 ActionScript 源文件只能包含一个对其它源文件或脚本可见的类。外部可见的类可以是公共类或内部类,必须在包语句内定义。如果在同一个文件中包括其它类,则该类必须放在包语句之外、文件结尾处。 外部可见的类的名称必须与包含该类的 ActionScript 源文件的名称匹配。源文件名称必须是类的名称加上文件扩展名 .as。例如,如果您将一个类命名为 Student,则定义该类的文件必须被命名为 Student.as。您不能嵌套类定义;即,不能在一个类定义内定义其它类。可以定义构造函数方法,每次创建该类的新实例时执行该方法。该构造函数方法的名称必须与类的名称匹配。如果未定义构造函数方法,则为您创建一个默认的构造函数。若要表示对象可在运行时添加和访问动态属性,请在 class 语句前面放置 dynamic 关键字。若要声明一个类实现一个接口,请使用 implements 关键字。若要创建一个类的子类,请使用 extends 关键字。(某一类只能扩展一个类,但可以实现多个接口。)您可以在一个语句中使用 implements 和 extends。下面的示例将说明 implements 和 extends 关键字的典型用法:class C implements Interface_i, Interface_j / OK class C extends Class_d implements Interface_i, Interface_j / OK class C extends Class_d, Class_e / not OK 参数 className:Class 类的完全限定名称。 示例如何使用示例 下面的示例创建一个名为 Plant 的类。Plant 构造函数采用两个参数。 / Filename Plant.as package public class Plant / Define property names and types private var _leafType:String; private var _bloomSeason:String; / Following line is constructor / because it has the same name as the class public function Plant(param_leafType:String, param_bloomSeason:String) / Assign passed values to properties when new Plant object is created _leafType = param_leafType; _bloomSeason = param_bloomSeason; / Create methods to return property values, because best practice / recommends against directly referencing a property of a class public function get leafType():String return _leafType; public function get bloomSeason():String return _bloomSeason; 在脚本中,使用 new 运算符来创建一个 Plant 对象。 var pineTree:Plant = new Plant(Evergreen, N/A); / Confirm parameters were passed correctly trace(pineTree.leafType); trace(pineTree.bloomSeason); 另请参见 dynamicextendsfinalinternalpublicconstdefinition keyword用法 const identifier = value 语言版本:ActionScript 3.0运行时版本:Flash Player 9指定一个常量,它是只能赋值一次的变量。 附加后跟数据类型的 colon (:) 字符可以严格指定常量的类型。参数 identifier:* 常量的标识符。 示例如何使用示例 下例说明,如果尝试多次为一个常量赋值将发生错误。 const MIN_AGE:int = 21;MIN_AGE = 18; / error下例说明,如果常量是一个数组,仍然可以调用 Array 类方法,包括 Array.push()。但是无法分配新数组文本。 const product_array:Array = new Array(Studio, Dreamweaver, Flash, ColdFusion, Contribute, Breeze); product_array.push(Flex); / array operations are allowedproduct_array = Other; / assignment is an errortrace(product_array); 另请参见 varcontinuestatement用法 continue label语言版本:ActionScript 3.0运行时版本:Flash Player 9跳过最内层循环中的所有剩余语句并开始循环的下一次遍历,就像控制正常传递到了循环结尾一样。continue 语句在循环外不起作用。在嵌套循环中,使用可选的 label 参数以跳过最内层以内的循环。 continue 语句可以具有可选标签,该标签必须与外部标记语句相匹配。使用与外部语句的标签不匹配的标签是一种语法错误。使用标记的 continue 语句可以跳过多层嵌套循环语句。示例如何使用示例 在下面的 while 循环中,continue 语句用于遇到 3 的整数倍时跳过循环体的其余部分,并跳转到循环的顶端(在该处进行条件测试): var i:int = 0; while (i 10) if (i % 3 = 0) i+; continue; trace(i); i+; 在 for 循环中,还可以使用 continue 语句以跳过循环体的其余部分。在下例中,如果 i % 3 等于 0,则跳过 trace(i) 语句: for (var i:int = 0; i 10; i+) if (i % 3 = 0) continue; trace(i); 另请参见 r each.inlabelwhiledefaultstatement用法 default: statements 语言版本:ActionScript 3.0运行时版本:Flash Player 9定义 switch 语句的默认情况。如果 switch 语句的 expression 参数不等于(使用全等运算符 =)给定 switch 语句的 case 关键字后的任何 expression 参数,则执行这些语句。 switch 语句不需要 default case 语句。default case 语句也不一定要出现在列表的最后。如果在 switch 语句外使用 default 语句,将会产生错误,并且脚本不能编译。参数 statements:* 任何语句。 示例如何使用示例 在下例中,如果某天是星期六或星期日,则不调用任何 case 语句,因此将转为执行 default 语句。 var dayOfWeek:int = new Date().getDay(); switch (dayOfWeek) case 1 : trace(Monday); break; case 2 : trace(Tuesday); break; case 3 : trace(Wednesday); break; case 4 : trace(Thursday); break; case 5 : trace(Friday); break; default : trace(Weekend); 另请参见 switchdefault xml namespacedirective用法 default xml namespace = ns语言版本:ActionScript 3.0运行时版本:Flash Player 9default xml namespace 指令可将默认的命名空间设置为用于 XML 对象。 如果未设置 default xml namespace,则默认命名空间是未命名的命名空间(当 URI 设置为空字符串时)。default xml namespace 声明的作用域在函数块内,类似于变量的作用域。 示例如何使用示例 下例说明 default xml namespace 的作用域是函数块: var nsDefault1:Namespace = new Namespace(/namespaces/);default xml namespace = nsDefault1; var x1:XML = ;trace(x1 ns: + space(); scopeCheck(); var x2:XML = ;trace(x2 ns: + space(); function scopeCheck(): void var x3:XML = ; trace(x3 ns: + space(); var nsDefault2:Namespace = new Namespace(/soap/envelope/); default xml namespace = nsDefault2; var x4:XML = ; trace(x4 ns: + space();以下是本示例 trace() 的输出:x1 ns: /namespaces/x3 ns: x4 ns: /soap/envelope/x2 ns: /namespaces/下例使用 default xml namespace 来分配默认的命名空间。因为第二个 XML 对象 (x2) 定义了自己的默认命名空间,所以 x2 未使用此设置: var nsDefault:Namespace = new Namespace(/namespaces/);default xml namespace = nsDefault; var x1:XML = ;trace(space(); / /namespaces/var x2:XML = ;trace(space(); / /1999/XSL/Transform/var x3:XML = ;trace(space(); / /namespaces/另请参见 namespaceNamespace Classuse namespaceXMLdo.whilestatement用法 do statement(s) while (condition)语言版本:ActionScript 3.0运行时版本:Flash Player 9与 while 循环类似,不同之处是在对条件进行初始计算前执行一次语句。随后,仅当条件计算结果是 true 时执行语句。 do.while 循环确保循环内的代码至少执行一次。尽管这也可以通过使用 while 循环在 while 循环开始前放置要执行的语句的副本来实现,但很多程序员认为 do.while 循环更易于阅读。如果条件计算结果始终为 true,do.while 就会无限循环。如果进入了无限循环,则 Flash Player 会遇到问题,最终会发出警告信息,或播放器崩溃。如果知道要循环的次数,应该尽可能使用 for 循环。尽管 for 循环易于阅读和调试,但不是在所有情况下都能代替 do.while 循环。参数 condition:Boolean 要计算的条件。只要 condition 参数的计算结果为 true,就会执行 do 代码块内的 statement(s)。 示例如何使用示例 下例使用 do.while 循环以计算条件是否为 true,并跟踪 myVar 直到 myVar 大于等于 5。myVar 大于等于 5 时,循环结束。 var myVar:Number = 0; do trace(myVar); myVar+; while (myVar =18) trace(welcome, user); else trace(sorry, junior); userObject.minor = true; userObject.accessAllowed = false;在下面的示例中,花括号 () 是不必要的,因为 else 语句后面只有一条语句: if (age_txt.text18) trace(welcome, user); else trace(sorry, junior);下例使用 if 和 else 语句的组合来对 score_txt 和特定的值进行比较: if (score_txt.text90) trace(A); else if (score_txt.text75) trace(B); else if (score_txt.text60) trace(C); else trace(F); 另请参见 ifextendsdefinition keyword用法 class className extends otherClassName interface interfaceName extends otherInterfaceName 语言版本:ActionScript 3.0运行时版本:Flash Player 9定义一个作为其它类的子类的类。子类继承超类中定义的所有方法、属性、函数等。无法扩展标记为 final 的类。 也可以使用 extends 关键字来扩展接口。扩展另一个接口的接口包含原始接口的所有方法声明。注意:若要使用此关键字,必须在 FLA 文件的“发布设置”对话框的“Flash”选项卡中指定 ActionScript 2.0 和 Flash Player 6 或更高版本。仅支持在外部脚本文件中使用此关键字,而不支持在用“动作”面板编写的脚本中使用此关键字。参数 className:Class 您所定义的类的名称。 示例如何使用示例 在下面的示例中,Car 类扩展 Vehicle 类,以继承其所有方法、属性和函数。如果您的脚本对 Car 对象进行实例化,则来自 Car 类的方法和来自 Vehicle 类的方法都可以使用。 下面的示例显示名为 Vehicle.as 的文件(它定义 Vehicle 类)的内容: package class Vehicle var numDoors:Number; var color:String; public function Vehicle(param_numDoors:Number = 2, param_color:String = null) numDoors = param_numDoors; color = param_color; public function start():void trace(Vehicle start); public function stop():void trace(Vehicle stop); public function reverse():void trace(Vehicle reverse); 下例说明同一目录中名为 Car.as 的第二个 ActionScript 文件。此类扩展 Vehicle 类,通过三种方式修改它。第一种是 Car 类添加变量 fullSizeSpare 以跟踪 car 对象是否具有标准尺寸的备用轮胎。第二种是它添加特定于汽车的新方法 activateCarAlarm(),该方法用于激活汽车的防盗警报。第三种是它覆盖 stop() 函数以添加 Car 类使用防抱死制动系统来停车的事实。 package public class Car extends Vehicle var fullSizeSpare:Boolean; public function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) numDoors = param_numDoors; color = param_color; fullSizeSpare = param_fullSizeSpare; public function activateCarAlarm():void trace(Car activateCarAlarm); public override function stop():void trace(Car stop with antilock brakes); 下面的示例对 Car 对象进行实例化,调用在 Vehicle 类中定义的方法 (start(),然后调用由 Car 类覆盖的方法 (stop(),最后从 Car 类调用一个方法 (activateCarAlarm(): var myNewCar:Car = new Car(2, Red, true); myNewCar.start(); / Vehicle start myNewCar.stop(); / Car stop with anti-lock brakes myNewCar.activateCarAlarm(); / Car activateCarAlarm使用 super 语句也可以编写 Vehicle 类的子类,此子类可以使用该语句访问超类的构造函数。下例显示第三个 ActionScript 文件,该文件名为 Truck.as,也在同一目录中。在构造函数和覆盖的 reverse() 方法中,Truck 类使用 super。package class Truck extends Vehicle var numWheels:Number; public function Truck(param_numDoors:Number, param_color:String, param_numWheels:Number) super(param_numDoors, param_color); numWheels = param_numWheels; public override function reverse():void beep(); super.reverse(); public function beep():void trace(Truck make beeping sound); 下面的示例对 Truck 对象进行实例化,调用由 Truck 类覆盖的方法 (reverse(),然后调用在 Vehicle 类中定义的方法 (stop(): var myTruck:Truck = new Truck(2, White, 18); myTruck.reverse(); / Truck make beeping sound Vehicle reverse myTruck.stop(); / Vehicle stop另请参见 classfinalinterfacefalseprimary expression keyword用法 false语言版本:ActionScript 3.0运行时版本:Flash Player 9表示 false 的布尔值。布尔值为 true 或 false;false 与 true 相反。 如果自动设置数据类型时将 false 转换为数字,则它变为 0;如果自动设置数据类型时将 false 转换为字符串,则它变为 false。注意:字符串 false 转换为布尔值 true。示例如何使用示例 此示例说明自动设置数据类型如何将 false 转换为数字以及转换为字符串: var bool1:B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论