Actionscript-教程3.0完全自学

上传人:夜曲 文档编号:253403128 上传时间:2024-12-13 格式:PPT 页数:498 大小:3.01MB
收藏 版权申诉 举报 下载
Actionscript-教程3.0完全自学_第1页
第1页 / 共498页
Actionscript-教程3.0完全自学_第2页
第2页 / 共498页
Actionscript-教程3.0完全自学_第3页
第3页 / 共498页
资源描述:

《Actionscript-教程3.0完全自学》由会员分享,可在线阅读,更多相关《Actionscript-教程3.0完全自学(498页珍藏版)》请在装配图网上搜索。

1、,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,,*,第,1,章,AcionScript 3.0,概述,ActionScript 3.0是针对Flash Player运行时环境的编程语言,它用于处理各种人机交互、数据交互等功能。本章将粗略的介绍ActionScript语言的进展历史、新增特色、编程环境等内容,以及第一个ActionScript3.0程序。,1.1,关于,ActionScript 3.0,ActionScript3.0是随着Adobe Flash CS3和Flex 2.0的推出而同步推出的脚本编程语言。本节将对ActionScr

2、ipt3.0进展简要的介绍,并通过一些具体的实例图片,呈现了常见的ActionScript的应用领域。,1.1.1 ActionScript 3.0,介绍,ActionScript3.0与ActionScript以前的版本有个本质上的不同。它是一门功能强大、符合业界标准的一门面对对象的编程语言。它在Flash编程语言中有着里程碑的作用,是用来开发富应用程序〔RIA〕的重要语言。,,ActionScript 3.0在用于脚本撰写的国际标准化编程语言ECMAScript的根底之上,对该语言做了进一步的改进,可为开发人员供给用于丰富Internet应用程序〔RIA〕的牢靠的编程模型。开发人员可以获

3、得卓越的性能并简化开发过程,便于利用特殊简洁的应用程序、大的数据集和面对对象的、可重复使用的根本代码。ActionScript 3.0在Flash Player 9中新的ActionScript虚拟机〔AVM2〕内执行,可为下一代RIA带来性能突破。,1.1.2 ActionScript 3.0,能做什么,最初在Flash中引入ActionScript,目的是为了实现对Flash影片的播放把握。而ActionScript进展到今日,其已经广泛的应用到了多个领域,能够实现丰富的应用功能。,,ActionScript 3.0最根本的应用与创作工具Adobe Flash CS3结合,创立各种不同的

4、应用特效,实现丰富多彩的动画效果,使Flash创立的动画更加人性话,更具有弹性效果。这些根底应用当中,应用最为广泛的就是使用ActionScript脚本把握的弹性菜单。下面是一个弹性的效果,,1.2 ActionScript 3.0,的新特色,ActionScript 3.0包括二局部:核心语言和Flash Player API。核心语言用于定义编程语言的根本构造, 比方声明变量,创立表达式把握程序构造和数据类型等。Flash Player API是由一系列用于实现特定功能的flash player类组成。,1.2.1,核心语言的新特色,ActionScript3.0核心语言与ECMAScr

5、ipt标准兼容,并和新改进的一些功能区域进展结合。下面是对一些其开发者便利的地方和用法总结的一些新特点:,,1.运行时的特殊处理机制,,2.运行时类型,,3.密封类,,4.闭包方法,,5.E4X,,6.正则表达式,,7.命名空间,,8.新基元类型,1.2.1 Flash Player API,新功能,Flash Player API为增加Flash Player容纳ActionScript语言的力气而引入的一组类和功能。这种功能把ActionScript核心语言和Flash平台之间建立了一座桥梁,大大提高了Flash应用程序的力气,并对核心语言起到了重要的补充作用。下面列出一些Flash P

6、layer API功能的新特点:,,1.DOM3大事模型,,2.显示列表API,1.3 Flash CS3,的动作面板介绍,Flash CS3中可以使用动作面板、“脚本窗口”或者外部编辑器的创作环境中田间ActionScript代码。本节就来介绍一下Flash CS3的动作面板窗口和Flash CS自带的编辑器窗口,并将具体的介绍功能按钮的作用。,1.3.1,动作面板概述,假设要在Flash CS3中参与ActionScript代码,可以直接使用动作面板来输入。,,要翻开动作面板,请执行下面的操作:单击【窗口|【动作】,或者按【F9】。,,翻开后的动作面板如以以下图。,,下面对图中各局部的名

7、称及作用加以说明。,,A:脚本窗格,用于输入代码的地方。,,B:面板菜单,单击后可显示动作面板功能菜单,,C:动作工具箱,可以通过双击或者拖动的方式将其中的ActionScript元素添加到脚本窗格中。,,D:脚本导航器,其有两个功能,一是通过单击其中的工程,可以将与该工程相关的代码显示在脚本窗口中,二是通过双击其中的工程,对该工程的代码进展固定操作。,1.3.2,脚本窗口概述,Action Script 3.0是很好的面对对象编程语言,同样Flash CS3也供给了一个很不错的脚本编辑器,这就是Flash的脚本窗口。使用脚本窗口可以创立或者导入外部的脚本文件,这些文件可以是ActionScr

8、ipt、Flash Communication或Flash JavaScript文件。,1.3.3,动作面板和脚本窗口的工具介绍,在动作面板和脚本窗口的上侧都有一排功能按钮,利用这些功能按钮可以很方面的进展ActionScript代码的输入和编写,下面对这些按钮进展具体的说明。,,:将新工程添加到脚本中按钮,该按钮主要用于显示语言元素,这些元素同时也会显示在“动作”工具箱中。可以利用它来选择要添加到脚本中的工程或者元素名称。,,:查找按钮,主要用于查找并替换脚本中的文本。,,:插入目标路径按钮〔仅限动作面板〕,可以帮助为脚本中的某个动作设置确定或相对目标路径。,,:语法检查按钮,用于检查当前脚

9、本中的语法错误。,,:自动套用格式按钮,用来调整脚本的格式以实现正确的编码语法和更好的可读性。,,:显示代码提示按钮:用于在关闭了自动代码提示时,可使用此按钮来显示正在吃力的代码行的代码提示。,,:调试选项按钮〔仅限动作面板〕,用于设置和删除断点,以便在调试时可以逐行执行脚本中的每一行。,1.3.3,动作面板和脚本窗口的工具介绍,:折叠成对大括号按钮,用于对消逝在当前包含插入点的成对大括号或小括号间的代码进展折叠。,,:折叠所选按钮:用于折叠当前所选的代码块。,,:开放全部按钮:用于开放当前脚本中全部折叠的代码。,,:应用块注释按钮,用于将注释标记添加到所选代码块的开头和结尾。,,:应用行注释

10、按钮,用于在插入点处或所选多行代码中每一行的开头处添加单行注释标记。,,:删除注释按钮,用于从当前行或当前选择内容的全部行中删除注释标记。,,:显示/隐蔽工具箱按钮,用于显示或隐蔽“动作”工具箱。,,:脚本助手按钮〔仅限动作面板〕,其用于翻开和关闭“脚本助手”模式。,,:帮助按钮,用于显示“脚本”窗格中所选 ActionScript 元素的参考信息。,,:面板菜单 〔仅限动作面板〕,包含适用于动作面板的命令和首选参数。,,,1.4 ActionScript 3.0,的首选参数设置,无论是在动作面板还是脚本窗口中编辑ActionScript代码,都可以通过设置首先参数来配置输入的ActionS

11、cript代码的格式。,,要设置ActionScript 3.0的首选参数,需要先翻开首选参数窗口。请执行下面的操作:选择【编辑】|【首选参数】,翻开首选参数对话框,,,1. 工具提示样式的代码提示,,2.使用菜单样式的代码提示,1.5 面对对象编程概述,ActionScript 3.0是为面对对象编程而预备的一种脚本语言。本节将简洁介绍一下面对对象编程的根本概念。,,面对对象编程,英文为:Object Oriented Programming,简写为OOP,意思为面对对象程序设计,它是一种计算机编程架构。,,程序〔program〕是为实现特定目标或者解决特定问题而用计算机语言编写的命令序列

12、的集合。它可以是一些高级程序语言开发出来的可以运行的可执行文件,也可以是一些应用软件制作出的可执行文件,比方Flash编译之后的SWF文件。,,编程是指为了实现某种目的或需求,使用各种不同的程序语言进展设计,编写能够实现这些需求的可执行文件。,1.6 Flash CS3,的第一个“,Welcome You”,Flash CS3中有两种写入ActionScript 3.0代码的方法:,,一种是在时间轴的关键帧参与ActionScript代码。,,另一种是在外部写出呢个单独的ActionScript类文件,然后在绑定或者导入到fla文件中来。,,ActionScript中的类有三种用法:一是和F

13、lash中的库元件进展绑定;二是和fla文件绑定;三是使用import关键字导入类。,,ActionScript3.0开发的程序,推举文档与代码分别,不推举把代码写在关键帧上。下面用两种方法来开头第一个“Welcome You”程序。,,1.在关键帧上参与代码,,2.利用文档类制造第一个“Welcome You”程序,第2章 AS3.0编程语言根底,语法、数据、变量、运算符和语句构成了编程语言的根底。本章将通过大量的测试代码。具体的介绍ActionScript 3.0中的语法、数据类型,变量以及运算符。通过本章的学习,为以后的面对对象编程将打下一个坚实的根底。,2.1 AS3.0,语法,任

14、何一门编程语言在编写代码时都必需遵循确定的规章,这个规章就是语法。本节将着重介绍从ActionScript 2.0开头使用的点语法和区分大小写,了解编程常用的标点符号的使用,以及程序注释的使用方法。,2.1.1,点语法,Flash中使用点〔.〕运算符来访问对象的属性和方法,点运算符主要用于下面的几个方面。,,1.可以承受对象后面跟点运算符的属性名称〔方法〕名称来引用对象的属性〔方法〕。,,2.可以承受点运算符表示包路径。,,3.可以使用点运算符描述显示对象的路径。,2.1.2,标点符号使用,在Flash中有多种标点符号都很常用,分别为:分号〔;〕、逗号〔,〕、冒号〔:〕、小括号〔〕、中括号〔[

15、]〕和大括号〔{}〕。这些标点符号在Flash中都有各自不同的作用,可以帮助定义数据类型,终止语句或者构建ActionScript代码块。,,1.分号〔;〕:ActionScript语句用分号(;)字符表示语句完毕。,,2.逗号〔,〕:逗号的作用主要用于分割参数,比方函数的参数,方法的参数等等。,,3.冒号〔:〕:冒号的作用主要用于为变量指定数据类型。要为一个变量指明数据类型,需要使用var关键字和后冒号法为其指定。,,4.小括号〔〕:小括号在ActionScript3.0中有三种用途。,,首先,在数学运算方面,可以用来转变表达式的运算挨次。小括号内的数学表达式优先运算。,,其次,在表达式运算

16、方面,可以结合使用小括号和逗号运算符,来优先计算一系列表达式的结果并返回最终一个表达式的结果。,,5.中括号〔[]〕:中括号主要用于数组的定义和访问,,,6.大括号〔{}〕:大括号主要用于编程语言程序把握,函数和类中。,,在构成把握构造的每个语句前后添加大括号〔例如if..else 或for〕,即使该把握构造只包含一个语句。,2.1.3,注释,注释是使用一些简洁易懂的语言对代码进展简洁的解释的方法。注释语句在编译过程中并不会进展求值运算。可以用注释来描述代码的作用,或者返回到文档中的数据。注释也可以帮助记忆编程的原理,并有助于其他人的阅读。假设代码中有些内容阅读起来含义大不明显,应当对其添加注

17、释。,,ActionScript3.0中的注释语句有两种:单行注释和多行注释。,,单行注释以两个单斜杠〔//〕开头,之后的该行内容均为注释。比方下面的代码:,,trace(“1234“)//输出:1234,2.1.4 关键字和保存字,保存字,从字面上就很简洁知道这是保存给ActionScript 3.0语言使用的英文单词。因而不能使用这些单词作为变量、实例、类名称等。假设在代码中使用了这些单词,编译器会报错。,,ActionScript3.0中的保存字分为3类:词汇关键字、语法关键字和供将来使用的保存字。,,1.词汇关键字,,2.句法关键字,,3.供将来使用的保存字。,2.2,变量和常量,变

18、量和常量,都是为了储存数据而创立的。变量和常量就像是一个容器,用于容纳各种不同类型的数据。固然对变量进展操作,变量的数据就会发生转变,而常量则不会。,,变量必需要先声明后使用,否则编译器就会报错。道理很简洁,比方现在要去喝水,那么你首先要有一个杯子,否则怎么样去装水呢?要声明变量的缘由与此一样。,2.2.1,声明变量的语法,在ActionScript 3.0中,使用var关键字来声明变量。格式如下所示。,,var 变量名:数据类型;,,var 变量名:数据类型=值;,,变量名加冒号加数据类型就是声明的变量的根本格式。要声明一个初始值,需要加上一个等号并在其后输入响应的值。但值的类型必需要和前面

19、的数据类型全都。,2.2.2 变量的命名规章,变量的命名既是任意的,又是有规章,有目的的。顺手牵来、杂乱无章的命名在Flash里面简洁引起代码的混乱,也不简洁进展维护操作。,,变量的命名首先要遵循下面的几条原则:,,它必需是一个标识符。它的第一个字符必需是字母、下划线〔_〕或美元记号〔$〕。其后的字符必需是字母、数字、下划线或美元记号。留意:不能使用数字作为变量名称的第一个字母。,,它不能是关键字或动作脚本文本,例如true、false、null或undefined。特殊不能使用ActionScript的保存字,否则编译器会报错。,,它在其范围内必需是惟一的,不能重复定义变量。,2.2.3,

20、变量的作用域,变量的作用域指可以使用或者引用该变量的范围,通常变量依据其作用域的不同可以分为全局变量和局部变量。全局变量指在函数或者类之外定义的变量,而在类或者函数之内定义的变量为局部变量。,,全局变量在代码的任何地方都可以访问,所以在函数之外声明的变量同样可以访问,如下面的代码,函数Test外声明的变量i在函数体内同样可以访问。,,var i:int=1;,,//定义Test函数,,function Test {,,trace(i);,,},,Test//输出:1,2.2.4,变量的默认值,变量的默认值是指变量在没有赋值之前的值。对于,ActionScript3.0,的数据类型来说,都有各自

21、的默认值,下面使用代码来测试一下:,,通过上面的代码输出,已经可以得到这些数据类型变量的默认值,分别为:,,Boolean,型变量的默认值是:,false,。,,int,型变量的默认值是:,0,。,,Number,型变量的默认值是:,NaN,。,,Object,型变量的默认值是:,null,。,,String,型变量的默认值是:,null,。,,uint,型变量的默认值是:,0,。,,*型变量的默认值是:,undefined,。,2.2.5,使用,const,声明常量,Action Script 3.0中增加了一个const关键字,用于声明常量。常量是指具有无法转变的固定值的属性。比方Math

22、.PI就是一个常量。常量可以看做一种特殊的变量,不过这种变量不能赋值,不能更改而已。,,使用用const声明常量的语法格式和var声明的变量的格式一样:,,const 常量名:数据类型;,,const 常量名:数据类型=值;,,下面声明常量的代码:,,const g:Number=9.8;,2.3 根底数据类型,和其它的面对对象的编程的数据类型一样,ActionScript3.0的数据类型同样分为两种,具体划分方式如下所示。,,基元型数据类型:Boolean、int、Number、String和uint。,,简洁型数据类型:Array、Date、Error、Function、RegExp、X

23、ML和XMLList。,,一般来说,基元值的处理速度通常比简洁值的处理速度要快。,,基元型数据和简洁型数据类型的最大的区分是:基元型是值对类型数据,而简洁型是引用类型数据。值对类型直接储存数据,使用它为另一个的变量赋值之后,假设另一个变量转变,并不影响原变量的值。引用类型指向要操作的对象,另一个变量引用这个变量之后,假设另一变量发生转变,原有的变量跟着也要发生转变。,,基元型数据类型都是值对类型数据,简洁型数据都是引用类型数据。,,另外,最明显的一个区分是,假设数据类型能够使用new关键字创立,那么它确定是引用型数据变量。,2.3.1 根底数据类型说明,本节通过大量的测试代码,来说明各种不同

24、的数据类型的用法和使用中的留意事项。,,1.Boolean 数据类型,,2.数字:int、uint和Number,,3.String 数据类型,,4.Array数组类型,,5.Object数据类型,,6.Object数据类型,2.3.2,数据类型检查,任何编程代码在执行前或者执行时都要执行数据类型的检查,以避开消逝数据错误。ActionScript 3.0是动态类型的语言,它默认的是执行时进展数据类型检查。同时它也在适合使用“严格模式”的编译器在编译时执行数据类型检查。在使用严格模式的编译器中,数据类型检查既可以在执行前执行编译器检查,也可以在运行时执行运行时检查。在标准模式下,只支持默认的执

25、行时数据类型检查。,,比方说在程序编写过程中,要明确传递变量值的类型和承受参数类型一样。比方下面的代码:,,function func(mystr:String) {,,trace(mystr);,,},,var str:String=“welcome you“;,,func(str);,2.3.3,隐式数据类型转换,数据类型转换是指把某个值转换为其它类型的数据。类型的转换有两种方式:隐式转换和显式转换。隐式转换又称为强制转换,由Flash Player在运行时执行。比方将2赋值给Boolean数据类型的变量,则Flash Player会先将2转换为布尔值true,然后再将其赋值给该变量。,,

26、隐式转换可以称为自动转换,是在程序编译的过程中由程序本身来进展数据类型的转换。它主要发生在很多上下文中。主要分为以下几种状况:,,在赋值语句中。,,在将值作为函数的参数传递时。,,在从函数中返回值时。,,在使用某些运算符〔如加法运算符〔+〕〕的表达式中。,2.3.4,显式数据类型转换,显式转换是指代码假设指示编译器将一个数据类型的变量视为属于另一个类型的变量时执行该转换。该转换主要利用数据类型的对象名称来转换。常用的数据转换均为此方式。,,显示转换是利用数据类型的对象名称来转换,常见的主要有下面的几种。,,1.转换为 int、uint 和 Number,,2.转换为Boolean,,3.转换为

27、 String,2.3.5,无类型说明符,ActionScript 3.0引入了三种特殊类型的无类型说明符:*,void和null。,,使用*类型用于指定属性是无类型的。使用*作为类型注释与不使用类型注释等效。从无类型属性中读取的表达式可视为无类型表达式。该说明符主要用于两个方面:将数据类型检查延缓到运行时和将undefined存储在属性中。,,void用于说明定函数无法返回任何值。void类型只有一个值:undefined。该说明符仅用于声明函数的返回类型。,,null是一个没有值的特殊数据类型。Null数据类型只有一个值:null。Null数据类型的不与任何类相关联。不行将Null数据类型

28、用作属性的类型注释。,2.4,运算符与表达式,学习一门编程语言,首先要弄清晰的就是如何对其中的数据进展运算。使用表达式来表达想要到达的效果,使用运算符来进展相关的运算,这就是数据运算的关键。本节主要介绍常用的运算符的用法。,2.4.1 运算符和表达式根底学问,运算符是可以通过给出的一个或者多个值来产生另一个值的东西。可以说它是一种特殊的函数。其中的值称为“操作数”,具体包括字面值、变量和表达式。,,运算符分为三种:一元运算符、二元运算符、三元运算符。一元运算符只运算一个值,例如递增运算符++;二元运算符比较常见,ActionScript 3.0中大局部运算符都是二元运算符;三元运算符具有三个

29、操作数,例如条件运算符〔?:〕具有3个操作数。,2.4.2,赋值运算符,赋值运算符有两个操作数,它依据一个操作数的值对另一个操作数进展赋值操作。ActionScript中的赋值运算有12个,,,赋值运算符,运算符,执行的运算,=,赋值,*=,乘法赋值,/=,除法赋值,%=,求模赋值,+=,加法赋值,-=,减法赋值,<<=,按位向左移位赋值,>>=,按位向右移位赋值,>>>=,按位无符号向右移位赋值,&=,按位,",与,",赋值,^=,按位,",异或,",赋值,|=,按位,",或,",赋值,2.4.3,算术运算符,算术运算符共有6个,分别为:加、减、乘、除、模运算和求反运算。,,加、减、乘、除的

30、运算很简洁,请看下面的代码例如:,,var a:int=1;,,var b:int=2;,,var c:int=a+b;,,var d:int=a-b;,,var e:int=a*b;,,var f:int=a/b;,2.4.4,算术赋值运算符,算术赋值运算符和算术运算符对应,共有5个,分别为+=、-=、*=、/=和%=。和赋值运算符一样,运算符的左边只能是变量。右侧是一个要值、变量或表达式。,,这种类型的赋值运算符有时也叫做自赋值运算符,就是利用自己进展运算并赋值给自己。比方下面的代码语句:,,a+=1;,,其要表达的运算过程就是下面的的代码要执行的运算过程。,,a=a+1;,2.4.5,关

31、系运算符,关系运算符用于比较两个操作数的值的大小关系。常见的关系运算符一般分为两类:一类用于推断大小关系,一类用于推断相等关系。其具体状况如下:,,推断大小关系:>大于运算符、=大于等于运算符、<=小于等于运算符。,,推断相等关系:==等于运算符、!=不等于运算符、===严格等于运算符、!==严格不等于运算符。,,关系运算符左右两侧可以是数值、变量或者表达式。关系表达式的结果是Boolean值,flase或者true。,,1.推断大小关系的运算符,,2.推断相等关系的运算符:,2.4.6 规律运算符,规律运算符有3个,分别为:&&规律“与”运算符、||规律“或”运算符和!规律“非”运算符。规

32、律运算符常用于规律运算,运算的结果为Boolean型。,,规律与〔&&〕和规律或〔||〕运算表达式要求左右两侧的表达式或者变量必需是Boolean型的值。,,&&:左右两侧有一个为flase,结果都为flase;只有两侧都为true,结果才为true。,,||:左右两侧有一个为true,结果都为true;只有两侧都为false,结果才为false。,2.4.7,按位和按位赋值运算符,按位运算符共有6个,分别为:&按位“与”、^按位“异或”、|按位“或”、>按位右移位、>>>按位无符号移位。同样,按位赋值运算符也有6个,比照按位运算符分别为:&=按位“与”赋值、^=按位“异或”赋值、|=按位“或

33、”赋值、>=按位右移位赋值、>>>=按位无符号移位赋值。,,按位操作需要把十进制的整数,转换为二进制的数,然后进展操作。,,按位与操作过程:按位与操作的规章为:1+1=1,1+0=0,0+1=0,0+0=0。比方11&34,11转二进制数为001011,34转二进制数为100010。现在依据位置从右向左第一位分别为1和0,所以取与后仍为0,依次取与的最终结果为000010。000010转为十进制数为2,所以最终的输出结果为2。代码如下所示。,,var a:int=11;,,var b:int=34;,,trace(a//输出为:2,2.4.8,递加递减运算符,++递加运算符和—递减运算符常用于

34、循环计算过程中,对循环中的变量进展递加或者递减操作。比方i++,它等价于i=i+1。测试代码如下:,,var i:int=0,,i++,,trace(i)//输出:1,,同样,i—等价于i=i-1。测试代码如下:,,var i:int=5;,,i--;,,trace(i);//输出:4,2.4.9,三元条件运算符,?:运算符是唯一的一个三元运算符,也就是说,这个运算符有三个操作数。具体的语法格式如下:,,(条件表达式)?〔表达式1〕:(表达式2),,格式说明如下:,,条件表达式:推断表达式,通过规律推断,得到一个Boolean型的结果。,,表达式1:推断表达式的结果为true,执行该语句。,,

35、表达式2:推断表达式的结果为false,执行该语句。,2.4.10,其它运算符,在ActionScript3.0中还有几个常见的运算符,如:typeof、is、as。下面对这几个运算符进展简洁的说明:,,1.typeof运算符:typeof用于测试对象的的类型,使用的方法如下:,,typeof(对象);,,2.is运算符:is运算符用于推断一个对象是不是属于一种数据类型,返回Boolean型变量。假设对象属于同一类型,则返回true,否则返回false。,,3.as运算符:as运算符和is运算符的使用格式一样,但是返回的值不同。假设对象的类型一样,返回对象的值;假设不同,则返回null。,2.

36、4.11,运算符的优先级,运算符的优先级挨次预备了一个表达式运算挨次。就像数学中的乘除运算要优于加减运算一样,ActionScript 3.0 中的各运算符之间也有一个优先运算的挨次。具体请参照表所示。,运算符优先挨次表,组,运算符,主要,[] {x:y} () f(x) new x.y x[y] @ :: ..,后缀,x++ x--,一元,++x --x + - ~ ! delete typeof void,乘法,* / %,加法,+ -,按位移位,> >>>,关系, = as in instanceof is,等于,== != === !==,按位,",与,",&,按位,",异或,",^

37、,按位,",或,",|,逻辑,",与,",&&,逻辑,",或,",||,条件,?:,赋值,= *= /= %= += -= >= >>>= &= ^= |=,逗号,,,第,3,章,AS3.0,程序设计,任何一门编程语言都要设计程序问题,ActionScript 3.0也不例外。在本章中,将介绍ActionScript3.0系统的根本语句以及程序设计的一般过程。首先介绍一下程序把握的规律运算,然后着重介绍条件语句和循环语句。,3.1 规律运算,在程序设计的过程中,要实现程序设计的目的,必需进展规律运算。只有进展规律运算,才能把握程序不断向最终要到达的目的前进,知道最终实现目标。,,规律运算又称

38、为布尔运算,通常用来测试真假值。规律运算主要使用条件表达式进展推断,假设符合条件,则返回结果true,不符合条件,返回结果false。,,条件表达式中最常见的形式就是利 用关系运算符进展操作数比较,进而得到推断条件。,,固然,有的状况下需要把握的条件比较多,那么就需要使用规律表达式进展规律运算,得到一个的组合条件,并把握最终的输出结果。,,常见的条件表达式举例如下:,,〔a>0〕:表示推断条件为a>0。假设是,返回true;否则返回false。,,〔a==b〕&&〔a>0〕:表示推断条件为a大于0,并且a与b相等。假设是,返回true,否则返回false。,,〔a==b〕||〔a>0〕:表示推

39、断条件为a大于0,或者a与b相等。假设是,返回true,否则返回false。,3.2 程序的三种构造,在程序设计的过程中,假设把握程序,如何安排每句代码执行的先后次序,这个先后执行的次序,称之为“构造”。常见的程序构造有三种:挨次构造、选择构造和循环构造。本节将逐个介绍一下这三种程序构造的概念和流程。,3.2.1 挨次构造,挨次构造最简洁,就是依据代码的挨次,一句一句的执行操作,构造如图3-1所示。,,ActionScript代码中的简洁语句都是依据挨次进展处理,这就是挨次构造。请看下面的例如代码。,,//执行的第一句代码,初始化一个变量,,var a:int;,,//执行其次句代码,给变

40、量a赋值数值1,,a=1;,,//执行第三句代码,变量a执行递加操作,,a++;,3.2.2 选择构造,当程序有多种可能的选择时,就要使用选择构造。选择那一个,要依据条件表达式的计算结果而定。构造如以以下图。,3.2.3 循环构造,循环构造就是屡次执行同一组代码,重复的次数由一个数值或条件来预备。构造如以以下图。,3.3 选择程序构造,选择程序构造就是利用不同的条件去执行不同的语句或者代码。ActionScript 3.0有三个可用来把握程序流的根本条件语句。其分别为if..else条件语句、if..else if条件语句、switch条件语句。本节将具体讲解这三种不同的选择程序构造。,

41、3.3.1 if..else,条件语句,if..else条件语句推断一个把握条件,假设该条件能够成立,则执行一个代码块,否则执行另一个代码块。,,if..else条件语句根本格式如下:,,if(表达式){,,语句1,,},,else,,{,,语句2;,,},3.3.2 if..else if..else,语句,if..else,条件语句执行的操作最多只有两种选择,要是有更多的选择,那就可以使用,if..else if..else,条件语句。,3.3.3 Switch,语句,Switch语句相等于一系列的if..else if..语句,但是要比if语句要清晰的多。switch 语句不是对条

42、件进展测试以获得布尔值,而是对表达式进展求值并使用计算结果来确定要执行的代码块。,,Switch语句格式如下:,,switch (表达式) {,,case:,,程序语句1;,,break;,,case:,,程序语句2;,,break;,,case:,,程序语句3;,,break;,,default:,,默认执行程序语句;,,},3.4 循环程序构造,在现实生活中有很多规律性的操作,作为程序来说就是要重复执行某些代码。其中重复执行的代码称为循环体,能否重复操作,取决于循环的把握条件。循环语句可以认为是由循环体和把握条件两局部组成。,,循环程序构造的构造一般认为有两种:,,一种先进展条件推断,假

43、设条件成立,执行循环体代码,执行完之后再进展条件推断,条件成立连续,否则退出循环。假设第一次条件就不满足,则一次也不执行,直接退出。,,另一种是先执行依次操作,不管条件,执行完成之后进展条件推断,假设条件成立,循环连续,否则退出循环。,3.4.1 for,循环语句,for循环语句是ActionScript编程语言中最灵敏、应用最为广泛的语句。for循环语句语法格式如下:,,for(初始化;循环条件;步进语句) {,,循环执行的语句;,,},,格式说明如下:,,初始化:把程序循环体中需要使用的变量进展初始化。留意要使用var关键字来定义变量,否则编译时会报错。,,循环条件:规律运算表达式,运算

44、的结果预备循环的进程。假设为flase,退出循环,否则连续执行循环代码。,,步进语句:算术表达式,用于转变循环变量的值。通常为使用++〔递增〕或--〔递减〕运算符的赋值表达式。,,循环执行的语句:循环体,通过不断转变变量的值,已到达需要实现的目标。,3.4.2 while,循环语句,while循环语句是典型的“当型循环”语句,意思是当满足条件时,执行循环体的内容。while循环语句语法格式如下:,,while(循环条件) {,,循环执行的语句,,},,格式说明如下:,,循环条件:规律运算表达式,运算的结果预备循环的进程。假设为true,连续执行循环代码,否则退出循环。,,循环执行的语句:循环

45、体,其中包括变量转变赋值表达式,执行语句并实现变量赋值。,3.4.3 do..while,循环语句,do…while循环是另一一种while循环,它保证至少执行一次循环代码,这是由于其是在执行代码块后才会检查循环条件。do…while循环语句语法格式如下:,,do {,,循环执行的语句,,} while (循环条件),,循环执行的语句:循环体,其中包括变量转变赋值表达式,执行语句并实现变量赋值。,,循环条件:规律运算表达式,运算的结果预备循环的进程。假设为true,连续执行循环代码,否则退出循环。,3.4.4 for..in,和,for each..in,语句,for..in和for ea

46、ch..in语句都可以用于循环访问对象属性或数组元素。下面分别使用两种语句来访问对象中的属性。代码如下所示。,,//定义一个对象lzxt,并添加属性name和age,,var lzxt:Object = {name:“浪子啸天“, age:30};,,//执行遍历操作,,for (var i:String in lzxt) {,,//输出属性名称和属性值,,trace(“for in 语句输出:“+i + “: “ + lzxt[i]);,,},,//执行for each遍历操作,,for each (var k:String in lzxt) {,,//输出属性值,,trace(“for e

47、ach 语句输出:“+k);,,},3.4.5,循环的嵌套,嵌套循环语句,就是在一个循环的循环体中存在另一个循环体,如此重复下去直到循环完毕为止,即为循环中的循环。以for循环为例,格式如下所示。,,for (初始化; 循环条件; 步进语句) {,,for (初始化; 循环条件; 步进语句) {,,循环执行的语句;,,},,},3.4.6 循环流程把握语句,在ActionScript 3.0中可以使用break和continue来把握循环流程。break语句的结果是直接跳出循环,不再执行后面的语句;continue语句的结果是停顿当前这一轮的循环,直接跳到下一轮的循环,而当前轮次中conti

48、nue后面的语句也不再执行。,,下面的两个例子分别执行循环变量从0递增到10的过程,假设i等于4,分别执行break和continue语句,看发生的状况。代码如下所示。,,//使用break把握循环,,for (var i:int=0; i<10; i++) {,,if (i==3) {,,break;,,},,trace(“当前数字是:“+i);,,},第,4,章 函数,函数在程序设计的过程中,是一个革命性的创新。利用函数编程,可以避开冗长、杂乱的代码;利用函数编程,可以重复利用代码,提高程序效率;利用函数编程,可以便利的修改程序,提高编程效率。,,函数(Function)的准确的定义为:

49、执行特定任务,并可以在程序中重用的代码块。ActionScript 3.0中有两类函数:“方法”和“函数闭包”。具体是将函数称为方法还是函数闭包,取决于定义函数的上下文。,4.1,定义函数,在ActionScript 3.0中有两种定义函数的方法:一种是常用的函数语句定义法;一种是ActionScript中独有的函数表达式定义法。具体使用哪一种方法来定义,要依据编程习惯来选择。一般的编程人员使用函数语句定义法,对于有特殊需求的编程人员,则使用函数表达式定义法。,4.1.1,函数语句定义法,函数语句定义法是程序语言中根本类似的定义方法,使用function关键字来定义,其格式如下所示。,,fun

50、ction 函数名(参数1:参数类型,参数2:参数类型…):返回类型{,,//函数体,,},,代码格式说明:,,function:定义函数使用的关键字。留意function关键字要以小写字母开头。,,函数名:定义函数的名称。函数名要符合变量命名的规章,最好给函数取一个与其功能全都的名字。,,小括号:定义函数的必需的格式,小括号内的参数和参数类型都可选。,,返回类型:定义函数的返回类型,也是可选的,要设置返回类型,冒号和返回类型必需成对消逝,而且返回类型必需是存在的类型。,,大括号:定义函数的必需格式,需要成对消逝。括起来的是函数定义的程序内容,是调用函数时执行的代码。,4.1.2,函数表达式定

51、义法,函数表达式定义法有时也称为函数字面值或匿名函数。这是一种较为繁杂的方法,在早期的ActionScript版本中广为使用。其格式如下所示。,,var 函数名:Function=function(参数1:参数类型,参数2:参数类型…):返回类型{,,//函数体,,},,代码格式说明:,,var:定义函数名的关键字,var关键字要以小写字母开头。,,函数名:定义的函数名称。,,Function:指示定义数据类型是Function类。留意Function为数据类型,需大写字母开头。,,=:赋值运算符,把匿名函数赋值给定义的函数名。,,function:定义函数的关键字,指明定义的是函数,,小括号

52、:定义函数的必需的格式,小括号内的参数和参数类型都可选。,,返回类型:定义函数的返回类型,可选参数。,,大括号:其中为函数要执行的代码。,4.1.3 两种定义方法的区分和选择,原则上,推举使用使用函数语句定义法。由于这种方法更加简洁,更有助于保持严格模式和标准模式的全都性的。,,下面要讲解的是函数语句和函数表达式定义法之间存在的区分,具体内容如下所示。,,1.两种方法区分,,2.两种方法的选择,,在两种定义方法的选择上,一般使用函数语句定义法。函数表达式定义函数主要用于:一是适合关注运行时行为或动态行为的编程,二是用于那些使用一次后便丢弃的函数或者向原型属性附加的函数。函数表达式更多地用在动

53、态编程或标准模式编程中。,4.2,调用函数,函数只是一个编好的程序块,在没有被调用之前,什么也不会发生。只有通过调用函数,函数的功能才能够实现,才能表达出函数的高效率。通过本节的学习,读者将把握一般的函数调用方法以及嵌套和递归调用函数的方法。,4.2.1,函数的一般调用,对于没有参数的函数,可以直接使用该函数的名字,并后跟一个圆括号(它被称为“函数调用运算符”)来调用。,,下面定义一个不带参数的函数HelloAS,并在定义之后直接调用,其代码如下。,,function HelloAS {,,trace(“AS3.0世界欢送你!“);,,},,HelloAS;,,代码运行后的输出结果,如下所示。

54、,,/输出:AS3.0世界欢送你!,4.2.2,嵌套和递归调用函数,嵌套和递归调用是两种类似函数调用方式,其本质都是在调用函数时用一个函数就调用另一个函数。不同的是,嵌套调用是用一个函数去调用另一个函数,而递归调用是函数调用自身函数。,,1,.嵌套调用函数,,2,.递归调用函数,4.3,函数的返回值,主调函数通过函数的调用得到一个确定的值,此值被称为函数的返回值。利用函数的返回值,可以通过函数进展数据的处理、分析和转换,并能最终猎取想要获得的结果。在本节我们主要学习函数返回值的猎取方法和猎取过程中的留意事项。,4.3.1 return,语句,AS从函数中猎取返回值,使用return语句来实现

55、,语法格式如下:,,return 返回值,,return:函数返回值的关键字,必需的。,,返回值:函数中返回的数据,既可以是字符串、数值等,也可以是对象,如数组、影片简介等。,,下面定义一个求圆形面积的函数,并返回圆面积的值,其代码如下:,,function 圆面积(r:Number):Number{,,var s:Number=Math.PI*r*r,,return s,,},,trace(圆面积(5)),4.3.2,返回值类型,函数的返回类型在函数的定义中属于可选参数,假设没有选择,那么返回值的类型由return语句中返回值的数据类型来预备。,,下面的代码,return语句返回一个字符型数

56、据,来验证一下返回值的类型。,,function 类型测试 {,,var a:String=“这是一个字符串“;,,return a;,,},,trace(typeof(类型测试));,,代码运行后的输出结果,如下所示。,,string,4.4,函数的参数,函数通过参数向函数体传递数据和信息。ActionScript 3.0对函数的参数增加了一些新功能,同时也增加了一些限制。有大多数程序员都生疏的按值或按引用传递参数这一概念,也有对很多人很生疏的arguments对象和...(rest)参数。,4.4.1,传递参数的语法,函数中传递的参数都位于函数格式的括号中,语法格式如下:,,(参数1:参数

57、类型=默认值,参数2:参数类型=默认值),,下面定义一个共性化的欢送语句,对不同的姓名给出对应的问候。代码如下所示。,,function Welcome(username:String):void {,,trace(“欢送你!“+username);,,},,Welcome(“张三“);,,Welcome(“小明“);,,代码运行后的输出结果,如下所示。,,欢送你!张三,,欢送你!小明,4.4.2,传递参数的的两种方法,很多编程语言中,参数的传递根本都是两种类型:按值或者按引用传递。按值传递意味着将参数的值复制到局部变量中以便在函数内使用。按引用传递意味着将只传递对参数的引用,而不传递实际值。

58、要了解任何一门编程语言中的函数,首先必需搞清晰的问题就是参数的传递究竟是按值还是按引用来传递参数。,,在ActionScript 3.0 中,全部的参数均按引用传递,由于全部的值都存储为对象。基元型数据是不变的对象,按按值还是按引用的效果一样,通常可以看作是按值传递。按值传递,就是指参数被传递给函数后,被传递的变量就独立了。假设在函数中转变这个变量,原变量不会发生任何的变化。,4.4.3,给函数设置默认参数,在ActionScript 2.0中并不支持对函数设置默认参数,此为ActionScript 3.0的新功能。要给一个函数的参数设置默认值,语法格式如下:,,function(参数1:参数

59、类型=默认值,参数2:参数类型=默认值),,默认参数是可选项,可以设置默认参数,也可以不设置默认参数。假设设置了默认参数,则在调用函时,假设果没有写明参数,系统将使用在函数定义中为该参数指定的值。,4.4.4 arguments,对象和,...(rest),参数,ActionScript3.0中有两种函数调用时检查参数数量的方法,分别为使用arguments对象和..(rest) 参数。,,1.arguments 对象,,在函数中,可以使用arguments 对象来访问有关传递给该函数的参数的信息。arguments 对象是一个数组,其中按挨次保存着传递给函数的全部参数。可以使用数组的访问方

60、式来访问传入的参数。它有一个length属性记录当前传入的参数数目;还有一个属性callee供给对函数本身的引用,该引用可用于递归调用函数表达式。,,2....(rest)参数,,...(rest)参数是ActionScript3.0引入的新参数声明。使用该参数可指定一个自己命名的数组参数来承受任意多个以逗号分隔的参数。,第5章 大事的发送和处理,大事处理系统是交互式程序设计的重要根底。利用大事处理机制,可以便利的相应用户输入和系统大事。ActionScript 3.0的大事机制基于文档对象模型〔DOM3〕,是业界标准的大事处理体系构造。使用机制不仅便利,而且符合标准。ActionScrip

61、t 3.0全新的大事处理机制是ActionScript编程语言中的重大改进,对ActionScript程序设计人员来说,在使用上也更加的便利和直观。,5.1 大事处理根底,在本节将介绍大事和处理的根本概念,了解常见的大事处理任务。比照ActionScript编程语言中不同版本的大事处理机制的异同,明确ActionScript 3.0中大事处理机制具有良好的性能。,5.1.1 大事和大事处理根底学问,大事和大事处理是面对对象编程的根底。本节将介绍大事和大事处理的根底学问以及大事处理的方法和大事处理的任务。,,1.大事和大事处理根本概念,,2.ActionScript 3.0中的大事和大事处理,

62、,3.ActionScript 3.0中的大事处理任务,,在ActionScript 3.0编程过程中,常见的使用大事处理的任务有:,,编写代码以响应大事,,阻挡代码响应大事,,处理大事对象,,处理大事流,,从类中调度大事,,创立自定义大事类型,5.1.2 早期 ActionScript 版本中的大事处理,ActionScript 1.0使用on和onClipEvent两个大事处理函数来处理大事。具体为:,,on大事处理函数,直接放在按钮或者影片剪辑实例上。,,onClipEvent处理函数,直接放在影片剪辑实例上。,,这种方法把代码直接夹在实例上,简洁易于、便利直接,但是由于分散在各个不同

63、的元件之上,难以治理和维护。特殊是处理不是本人编写的代码,查看和找寻会铺张太多的珍贵时间。,,在ActionScript2.0中对大事处理进展了改进,增加了一些大事处理机制,具体为:,,回调函数大事:onload、oninit、onComplete等。,,大事侦听器:addListener、addEventListener。,5.1.3 ActionScript 3.0中的大事处理,在ActionScript 3.0引入了基于文档对象模型〔DOM3〕唯一的一种大事处理模式,取代了以前各版本中存在的众多的大事处理机制。在ActionScript3.0中值存在一种大事处理模型,虽然会对一些老版本

64、的用户和一些非开发者造成确定的麻烦,但更加清晰,更加标准,更符合面对对象开发的需要。,,比照ActionScript 2.0,ActionScript 3.0的大事处理体系具有以下几个新特点:,,在ActionScript 3.0中,只能使用addEventListener注册侦听器。,,在ActionScript 3.0中,可以对属于大事流一局部的任何对象调用addEventListener方法。,,在ActionScript 3.0中,只有函数或方法可以是大事侦听器。,5.2 Event,类,在ActionScript 3.0的大事处理系统中,大事对象主要有两个作用:一是将大事信息储存在

65、一组属性中,来代表具体大事;二是包含一组方法,用于操作大事对象和影响大事处理系统的行为。,,在ActionScript 3.0中,在Flash播放器的应用程序接口中,有一个Event类,作为全部大事对象的基类,也就是说,程序中所发生的大事都必需是Event类或者其子类的实例。,5.2.1,了解,Event,类属性,Event类公开的属性有:type、cancelable、target、currentTarget、eventphase、bubles。,,1.type属性:每个大事对象都有关联的大事类型。大事类型存储以字符串的形式存储在Event.type属性中。利用大事类型,可以区分不同类型的大

66、事。,,2.cancelable属性:大事的默认行为是否可以被阻挡由布尔值表示,并存储在Event.cancelable属性中。此属性时一个布尔值,默认为flase。这个属性一般是和preventDefault方法结合在一起使用的。,,3.target属性:target属性用于存储对大事目标的引用。,,4.其它属性:currentTarget、eventphase和bubbles这三个属性都是和ActionScript3的大事流机制有关,在寻常用到的不多。,5.2.2,了解,Event,类的方法,Event类的方法有7种:clone、toString、stopPropogation、stopImmediatePropogation、preventDefault、isDefaultPrevented和formatToString。这些方法的用途如下:,,Event.clone方法用于赋值Event子类实例,返回Event对象原始实例的副本。当需要自定义Event子类时,就必需要继承Event.clone方法,用于赋值自定义类的属性。另外还要加上新的属性,否则在侦听器重写调用时,这些属性的

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

相关资源

更多
正为您匹配相似的精品文档

相关搜索

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!