《AS编程语言基础实用教案》由会员分享,可在线阅读,更多相关《AS编程语言基础实用教案(30页珍藏版)》请在金锄头文库上搜索。
1、2.1.1点语法(yf)Flash中使用点(.)运算符来访问对象的属性和方法,点运算符主要用于下面的几个方面。1可以采用对象后面跟点运算符的属性名称(方法)名称来引用对象的属性(方法)。2可以采用点运算符表示(biosh)包路径。3可以使用点运算符描述显示对象的路径。第1页/共29页第一页,共30页。2.1.2标点符号(biodinfho)使用在Flash中有多种标点符号都很常用,分别为:分号(;)、逗号(,)、冒号(:)、小括号(())、中括号()和大括号()。这些标点符号在Flash中都有各自不同的作用,可以帮助定义数据类型,终止语句或者构建ActionScript代码块。1分号(;):A
2、ctionScript语句用分号(;)字符表示语句结束。2逗号(,):逗号的作用主要用于分割参数,比如函数的参数,方法的参数等等。3冒号(:):冒号的作用主要用于为变量指定数据类型。要为一个变量指明数据类型,需要使用var关键字和后冒号法为其指定。4小括号(()):小括号在ActionScript3.0中有三种(snzhn)用途。首先,在数学运算方面,可以用来改变表达式的运算顺序。小括号内的数学表达式优先运算。其次,在表达式运算方面,可以结合使用小括号和逗号运算符,来优先计算一系列表达式的结果并返回最后一个表达式的结果。5中括号():中括号主要用于数组的定义和访问,6大括号():大括号主要用于
3、编程语言程序控制,函数和类中。在构成控制结构的每个语句前后添加大括号(例如if.else或for),即使该控制结构只包含一个语句。第2页/共29页第二页,共30页。2.1.3注释(zhsh)注释是使用一些简单易懂的语言(yyn)对代码进行简单的解释的方法。注释语句在编译过程中并不会进行求值运算。可以用注释来描述代码的作用,或者返回到文档中的数据。注释也可以帮助记忆编程的原理,并有助于其他人的阅读。若代码中有些内容阅读起来含义大不明显,应该对其添加注释。ActionScript3.0中的注释语句有两种:单行注释和多行注释。单行注释以两个单斜杠(/)开始,之后的该行内容均为注释。比如下面的代码:t
4、race(1234)/输出:1234第3页/共29页第三页,共30页。2.1.4关键字和保留字保留字,从字面上就很容易知道这是保留给ActionScript3.0语言使用的英文单词。因而不能使用这些单词作为变量(binling)、实例、类名称等。如果在代码中使用了这些单词,编译器会报错。ActionScript3.0中的保留字分为3类:词汇关键字、语法关键字和供将来使用的保留字。1词汇关键字2句法关键字3供将来使用的保留字。第4页/共29页第四页,共30页。2.2变量(binling)和常量变量和常量,都是为了储存数据而创建的。变量和常量就像是一个容器,用于容纳各种不同类型的数据。当然对变量进
5、行操作,变量的数据就会发生改变,而常量则不会。变量必须要先声明后使用,否则编译器就会报错。道理很简单,比如(br)现在要去喝水,那么你首先要有一个杯子,否则怎么样去装水呢?要声明变量的原因与此相同。第5页/共29页第五页,共30页。2.2.1声明变量(binling)的语法在ActionScript3.0中,使用var关键字来声明变量。格式如下所示。var变量名:数据类型;var变量名:数据类型=值;变量名加冒号加数据类型就是( jish)声明的变量的基本格式。要声明一个初始值,需要加上一个等号并在其后输入响应的值。但值的类型必须要和前面的数据类型一致。第6页/共29页第六页,共30页。2.2
6、.2变量(binling)的命名规则变量的命名既是任意的,又是有规则,有目的的。随手牵来、杂乱无章的命名在Flash里面(lmin)容易引起代码的混乱,也不容易进行维护操作。变量的命名首先要遵循下面的几条原则:它必须是一个标识符。它的第一个字符必须是字母、下划线(_)或美元记号($)。其后的字符必须是字母、数字、下划线或美元记号。注意:不能使用数字作为变量名称的第一个字母。它不能是关键字或动作脚本文本,例如true、false、null或undefined。特别不能使用ActionScript的保留字,否则编译器会报错。它在其范围内必须是惟一的,不能重复定义变量。第7页/共29页第七页,共30
7、页。2.2.3变量(binling)的作用域变量的作用域指可以使用或者引用该变量的范围,通常变量按照其作用域的不同可以分为全局变量和局部变量。全局变量指在函数或者类之外定义的变量,而在类或者函数之内定义的变量为局部变量。全局变量在代码的任何地方都可以访问,所以在函数之外声明的变量同样(tngyng)可以访问,如下面的代码,函数Test()外声明的变量i在函数体内同样(tngyng)可以访问。vari:int=1;/定义Test函数functionTest()trace(i);Test()/输出:1第8页/共29页第八页,共30页。2.2.4变量(binling)的默认值变量的默认值是指变量在没
8、有赋值之前的值。对于ActionScript3.0的数据类型来说,都有各自的默认值,下面使用代码来测试一下:通过上面(shngmin)的代码输出,已经可以得到这些数据类型变量的默认值,分别为:Boolean型变量的默认值是:false。int型变量的默认值是:0。Number型变量的默认值是:NaN。Object型变量的默认值是:null。String型变量的默认值是:null。uint型变量的默认值是:0。*型变量的默认值是:undefined。第9页/共29页第九页,共30页。2.2.5使用const声明(shngmng)常量ActionScript3.0中增加了一个const关键字,用于
9、声明常量。常量是指具有无法改变的固定值的属性。比如Math.PI就是一个常量。常量可以看做一种特殊的变量,不过这种变量不能赋值,不能更改而已(ry)。使用用const声明常量的语法格式和var声明的变量的格式一样:const常量名:数据类型;const常量名:数据类型=值;下面声明常量的代码:constg:Number=9.8;第10页/共29页第十页,共30页。2.3基础(jch)数据类型和其它的面向对象的编程的数据类型一样,ActionScript3.0的数据类型同样分为两种,具体划分方式如下所示。基元型数据类型:Boolean、int、Number、String和uint。复杂型数据类型
10、:Array、Date、Error、Function、RegExp、XML和XMLList。一般来说,基元值的处理速度通常比复杂值的处理速度要快。基元型数据和复杂型数据类型的最大的区别是:基元型是值对类型数据,而复杂型是引用类型数据。值对类型直接储存数据,使用它为另一个的变量赋值之后,若另一个变量改变,并不影响原变量的值。引用类型指向要操作的对象,另一个变量引用这个变量之后,若另一变量发生改变,原有的变量跟着也要发生改变。基元型数据类型都是值对类型数据,复杂型数据都是引用类型数据。另外,最明显的一个区别是,如果数据类型能够使用new关键字创建(chungjin),那么它一定是引用型数据变量。第
11、11页/共29页第十一页,共30页。2.3.1基础(jch)数据类型说明本节通过大量的测试代码,来说明(shumng)各种不同的数据类型的用法和使用中的注意事项。1Boolean数据类型2数字:int、uint和Number3String数据类型4Array数组类型5Object数据类型6Object数据类型第12页/共29页第十二页,共30页。2.3.2数据类型检查(jinch)任何编程代码在执行前或者执行时都要执行数据类型的检查,以避免出现数据错误。ActionScript3.0是动态类型的语言,它默认的是执行时进行数据类型检查。同时它也在适合使用“严格模式”的编译器在编译时执行数据类型检
12、查。在使用严格模式的编译器中,数据类型检查既可以在执行前执行编译器检查,也可以在运行时执行运行时检查。在标准模式下,只支持默认的执行时数据类型检查。比如说在程序编写过程中,要明确传递变量值的类型和接受参数类型相同(xintn)。比如下面的代码:functionfunc(mystr:String)trace(mystr);varstr:String=welcomeyou;func(str);第13页/共29页第十三页,共30页。2.3.3隐式数据(shj)类型转换数据类型转换是指把某个值转换为其它类型的数据。类型的转换有两种方式:隐式转换和显式转换。隐式转换又称为强制转换,由FlashPlaye
13、r在运行时执行。比如将2赋值给Boolean数据类型的变量,则FlashPlayer会先将2转换为布尔值true,然后再将其赋值给该变量。隐式转换可以称为自动转换,是在程序编译的过程(guchng)中由程序本身来进行数据类型的转换。它主要发生在许多上下文中。主要分为以下几种情况:在赋值语句中。在将值作为函数的参数传递时。在从函数中返回值时。在使用某些运算符(如加法运算符(+)的表达式中。第14页/共29页第十四页,共30页。2.3.4显式数据(shj)类型转换显式转换是指代码若指示编译器将一个数据类型(lixng)的变量视为属于另一个类型(lixng)的变量时执行该转换。该转换主要利用数据类型
14、(lixng)的对象名称来转换。常用的数据转换均为此方式。显示转换是利用数据类型(lixng)的对象名称来转换,常见的主要有下面的几种。1转换为int、uint和Number转换为Boolean转换为String第15页/共29页第十五页,共30页。2.3.5无类型(lixng)说明符ActionScript3.0引入了三种特殊类型的无类型说明符:*,void和null。使用*类型用于指定属性(shxng)是无类型的。使用*作为类型注释与不使用类型注释等效。从无类型属性(shxng)中读取的表达式可视为无类型表达式。该说明符主要用于两个方面:将数据类型检查延缓到运行时和将undefined存储
15、在属性(shxng)中。void用于说明定函数无法返回任何值。void类型只有一个值:undefined。该说明符仅用于声明函数的返回类型。null是一个没有值的特殊数据类型。Null数据类型只有一个值:null。Null数据类型的不与任何类相关联。不可将Null数据类型用作属性(shxng)的类型注释。第16页/共29页第十六页,共30页。2.4运算符与表达式学习一门编程语言,首先要弄清楚的就是如何(rh)对其中的数据进行运算。使用表达式来表达想要达到的效果,使用运算符来进行相关的运算,这就是数据运算的关键。本节主要介绍常用的运算符的用法。第17页/共29页第十七页,共30页。2.4.1运算
16、符和表达式基础知识运算符是可以通过给出的一个或者多个值来产生另一个值的东西。可以说它是一种特殊的函数。其中(qzhng)的值称为“操作数”,具体包括字面值、变量和表达式。运算符分为三种:一元运算符、二元运算符、三元运算符。一元运算符只运算一个值,例如递增运算符+;二元运算符比较常见,ActionScript3.0中大部分运算符都是二元运算符;三元运算符具有三个操作数,例如条件运算符(?:)具有3个操作数。第18页/共29页第十八页,共30页。2.4.2赋值运算符赋值运算符有两个操作数,它根据(gnj)一个操作数的值对另一个操作数进行赋值操作。ActionScript中的赋值运算有12个, 赋值
17、运算符运算符执行的运算= 赋值*= 乘法赋值/= 除法赋值%= 求模赋值+= 加法赋值-= 减法赋值= 按位向右移位赋值= 按位无符号向右移位赋值&= 按位与赋值= 按位异或赋值|= 按位或赋值第19页/共29页第十九页,共30页。2.4.3算术(sunsh)运算符算术(sunsh)运算符共有6个,分别为:加、减、乘、除、模运算和求反运算。加、减、乘、除的运算很简单,请看下面的代码示例:vara:int=1;varb:int=2;varc:int=a+b;vard:int=a-b;vare:int=a*b;varf:int=a/b;第20页/共29页第二十页,共30页。2.4.4算术(suns
18、h)赋值运算符算术赋值运算(ynsun)符和算术运算(ynsun)符对应,共有5个,分别为+=、-=、*=、/=和%=。和赋值运算(ynsun)符一样,运算(ynsun)符的左边只能是变量。右侧是一个要值、变量或表达式。这种类型的赋值运算(ynsun)符有时也叫做自赋值运算(ynsun)符,就是利用自己进行运算(ynsun)并赋值给自己。比如下面的代码语句:a+=1;其要表达的运算(ynsun)过程就是下面的的代码要执行的运算(ynsun)过程。a=a+1;第21页/共29页第二十一页,共30页。2.4.5关系(gunx)运算符关系运算符用于比较两个操作数的值的大小关系。常见的关系运算符一般分
19、为两类:一类用于判断(pndun)大小关系,一类用于判断(pndun)相等关系。其具体情况如下:判断(pndun)大小关系:大于运算符、=大于等于运算符、=小于等于运算符。判断(pndun)相等关系:等于运算符、!=不等于运算符、=严格等于运算符、!=严格不等于运算符。关系运算符左右两侧可以是数值、变量或者表达式。关系表达式的结果是Boolean值,flase或者true。1判断(pndun)大小关系的运算符2判断(pndun)相等关系的运算符:第22页/共29页第二十二页,共30页。2.4.6逻辑(luj)运算符逻辑运算符有3个,分别为:&逻辑“与”运算符、|逻辑“或”运算符和!逻辑“非”运
20、算符。逻辑运算符常用于逻辑运算,运算的结果为Boolean型。逻辑与(&)和逻辑或(|)运算表达式要求左右两侧的表达式或者变量必须(bx)是Boolean型的值。&:左右两侧有一个为flase,结果都为flase;只有两侧都为true,结果才为true。|:左右两侧有一个为true,结果都为true;只有两侧都为false,结果才为false。第23页/共29页第二十三页,共30页。2.4.7按位和按位赋值运算符按位运算符共有6个,分别为:&按位“与”、按位“异或”、|按位“或”、按位右移位、按位无符号移位。同样,按位赋值运算符也有6个,对照按位运算符分别为:&=按位“与”赋值、=按位“异或”
21、赋值、|=按位“或”赋值、=按位右移位赋值、=按位无符号移位赋值。按位操作(cozu)需要把十进制的整数,转换为二进制的数,然后进行操作(cozu)。按位与操作(cozu)过程:按位与操作(cozu)的规则为: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。代码如下所示。vara:int=11;varb:int=34;trace(a&b);/输出为:2第24页/共29页第二十
22、四页,共30页。2.4.8递加(dji)递减运算符+递加运算符和递减运算符常用于循环计算过程中,对循环中的变量进行( jnxng)递加或者递减操作。比如i+,它等价于i=i+1。测试代码如下:vari:int=0i+trace(i)/输出:1同样,i等价于i=i-1。测试代码如下:vari:int=5;i-;trace(i);/输出:4第25页/共29页第二十五页,共30页。2.4.9三元(snyun)条件运算符?:运算符是唯一的一个三元运算符,也就是说,这个运算符有三个操作数。具体的语法格式如下:(条件表达式)?(表达式1):(表达式2)格式说明如下:条件表达式:判断(pndun)表达式,通
23、过逻辑判断(pndun),得到一个Boolean型的结果。表达式1:判断(pndun)表达式的结果为true,执行该语句。表达式2:判断(pndun)表达式的结果为false,执行该语句。第26页/共29页第二十六页,共30页。2.4.10其它(qt)运算符在ActionScript3.0中还有几个常见的运算符,如:typeof、is、as。下面对这几个运算符进行简单的说明:1typeof运算符:typeof用于测试对象的的类型,使用的方法如下:typeof(对象);2is运算符:is运算符用于判断一个对象是不是属于一种数据类型,返回Boolean型变量。如果对象属于同一类型,则返回true,
24、否则返回false。3as运算符:as运算符和is运算符的使用格式(gshi)相同,但是返回的值不同。如果对象的类型相同,返回对象的值;若不同,则返回null。第27页/共29页第二十七页,共30页。2.4.11运算符的优先级运算符的优先级顺序决定了一个(y)表达式运算顺序。就像数学中的乘除运算要优于加减运算一样,ActionScript3.0中的各运算符之间也有一个(y)优先运算的顺序。具体请参照表所示。运算符优先(yuxin)顺序表组运算符主要 x:y () f(x) new x.y xy : . 后缀x+ x- 一元+x -x + - ! delete typeof void 乘法* /
25、 % 加法+ - 按位移位 关系 = as in instanceof is 等于= != = != 按位与& 按位异或 按位或| 逻辑与& 逻辑或| 条件?: 赋值= *= /= %= += -= = = &= = |= 逗号, 第28页/共29页第二十八页,共30页。感谢您的观赏(gunshng)!第29页/共29页第二十九页,共30页。内容(nirng)总结2.1.1 点语法。4小括号(()):小括号在ActionScript3.0中有三种用途。5中括号():中括号主要用于数组的定义和访问,。6大括号():大括号主要用于编程语言程序控制,函数和类中。在构成控制结构的每个语句前后添加大括号(例如if.else 或for),即使该控制结构只包含一个语句。该说明符主要用于两个(lin )方面:将数据类型检查延缓到运行时和将undefined存储在属性中第三十页,共30页。