第2章_Flex_4脚本语言ActionScript_30基础.ppt
《第2章_Flex_4脚本语言ActionScript_30基础.ppt》由会员分享,可在线阅读,更多相关《第2章_Flex_4脚本语言ActionScript_30基础.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 Flex 4脚本语言:脚本语言:ActionScript 3.0基础基础2.1 ActionScript 2.1 ActionScript 3.03.0语言概述2.2 2.2 基本语言元素2.32.3 运算符和表达式2.42.4 流程控制2.52.5 函数2.62.6 面向对象编程2.1 ActionScript 3.0语言概述语言概述v2.1.1 ActionScript 3.02.1.1 ActionScript 3.0简介简介ActionScript是Adobe Flash Player和Adobe AIR运行环境下的编程语言,由嵌入在Flash Player中的ActionSc
2、ript虚拟机(AVM)执行。ActionScript代码通常由编译器(如Adobe Flash CS4 Professional或Adobe Flash Builder的内置编译器,或Adobe Flex SDK中提供的编辑器)编译为“字节代码格式”(一种由计算机编写并且计算机能够理解的编程语言),字节码嵌入在SWF文件中,SWF文件由Flash Player和AIR执行。2.1.2 在在Flex中应用中应用ActionScriptc1 1在在MXMLMXML中编写中编写ActionScriptActionScript在MXML文件中插入标签,即可编写ActionScript代码。例如:2.
3、1.2 在在Flex中应用中应用ActionScriptc2 2在在ASAS文件中编写文件中编写ActionScriptActionScript(1)启动Flash Builder 4,选择要在其中创建ActionScript类的Flex项目,单击“新建”按钮选择“ActionScript类”菜单项,弹出“新建ActionScript类”对话框,如图2.1所示。2.1.2 在在Flex中应用中应用ActionScript(2)在“包”文本框中输入类所在的包;在“名称”文本框中输入类名,类名必须以大写字母开头;在“修饰符”栏选择类的类型,其中“public”表示公有类,“internal”表示内
4、部类。在项目的src目录下将新建一个包,包中包含Circle.as文件,如图2.2所示。2.1.2 在在Flex中应用中应用ActionScript(3)双击打开Circle.as文件,代码编辑器中自动生成部分创建ActionScipt类的代码,如图2.3所示。2.1.2 在在Flex中应用中应用ActionScript用户可以在代码编辑器的“package com.flex.demo”中定义ActionScript类,例如,要定义一个计算圆面积的类,可以使用以下代码:package com.flex.demopublic class Circle/定义常量private const PAI:
5、Number=3.14;/定义属性:半径private var radius:Number;/构造方法public function Circle(radius:Number)this.radius=radius;/获得圆的面积方法public function area():Numberreturn this.PAI*this.radius*this.radius;2.1.2 在在Flex中应用中应用ActionScriptc3 3在在MXMLMXML文件中引用文件中引用ActionScriptActionScript类类(1)使用source属性引用ActionScript文件。语法格式如
6、下:例如:(2)使用import语句引入ActionScript类。如果.as文件中定义的是一个ActionScript类,可以使用import语句引入,语法格式如下:import 类所在的包例如,在主程序文件中引入Circle类,可以使用如下代码:2.1.3 使用使用ActionScript 控制控制MXML标签标签例如,MXML中使用标签定义按钮,而ActionScript中可以使用Button类定义按钮;标签可以使用Label属性定义按钮的文本,而ActionScript中使用Button类的Label属性定义按钮文本。示例代码。执行结果如图2.4所示。2.2 基本语言元素基本语言元素v
7、2.2.1 2.2.1 语法规则语法规则ActionScript 3.0中有一些需要遵循的语法规则,主要包含以下几点。(1)大小写。(2)分号。(3)注释。(4)关键字和保留字。(5)点。点操作符提供进入一个对象的属性和方法的路径。2.2.1 语法规则语法规则表2.1列出了ActionScript 3.0的词汇关键字。词汇关键字词汇关键字词汇关键字词汇关键字词汇关键字asbreakcasecatchclassconstcontinuedefaultdeletedoelseextendsfalsefinallyforfunctionifimplementsimportininstanceofin
8、terfaceinternalisnativenewnullpackageprivateprotectedpublicreturnsuperswitchthisthrowtotruetrytypeofusevarvoidwhilewith2.2.1 语法规则语法规则表2.2列出了ActionScript 3.0的句法关键字。句法关键字句法关键字句法关键字句法关键字句法关键字eachgetsetnamespaceincludedynamicfinalnativeoverridestatic标识符是供ActionScript 3.0将来使用的保留字,建议不要使用这些标识符,如表2.3所示。保 留
9、字保 留 字保 留 字保 留 字保 留 字abstractbooleanbytecastchardebuggerdoubleenumexportfloatgotointrinsiclongprototypeshortsynchronizedthrowstransienttypevirtualvolatile2.2.2 数据类型数据类型c1 1基元数据类型基元数据类型(1)Boolean。Boolean数据类型为逻辑数据类型,包含true和false两个值。(2)int。int数据类型在内部存储为32位整数,包含的整数集介于-2,147,483,648(-231)2,147,483,647(23
10、1 1)之间(包含两端)。(3)Number。Number数据类型可以表示整数、无符号整数和浮点数。(4)uint。uint 数据类型在内部存储为32位无符号整数,包含的整数集介于0和 4,294,967,295(232-1)之间(包括 0 和 4,294,967,295)。(5)String。String数据类型表示一个16位字符的序列。(6)Null。Null数据类型仅包含一个值,即null。(7)void。void数据类型仅包含一个undefined值。2.2.2 数据类型数据类型c2 2复杂数据类型复杂数据类型(1)Object。Object数据类型是由Object类定义的。Objec
11、t类用做ActionScript中的所有类定义的基类。(2)Array。可以使用以下四种方式声明Array数组:var 变量名:Array=new Array();var 变量名:Array=new Array(数组长度);var 变量名:Array=new Array(元素1,元素2);var 变量名:Array=元素1,元素2;(3)Date。可以使用如下方式创建时间对象:var now:Date=new Date();(4)Error。Error类可用于引发异常,它是ECMAScript中所定义的其他异常类的基类。(5)Function。(6)RegExp。(7)XML和XMLList。
12、2.2.3 变量和常量变量和常量c1 1变量变量(1)变量的声明。要声明一个变量,必须使用var关键字。例如,下面的ActionScript语句声明一个名为i的变量:var i;(2)变量赋值。可以使用赋值运算符(=)为变量赋值。例如,声明一个Number类型变量i 并将值20.8赋给它,代码如下所示:var i:Number;i=20.8;2.2.3 变量和常量变量和常量c2 2变量的作用域变量的作用域变量的“作用域”是指可以访问变量的代码区域。例如,下面的代码声明一个全局变量:var str:String=This is Global String!;function pri()trace
13、(str);/全局变量pri();trace(str);/全局变量c3 3常量常量常量也是一个名称,表示计算机内存中具有指定数据类型的值,就这一点而言,常量与变量极为相似。2.2.4 类型转换类型转换c1 1自动转换自动转换自动转换遵循以下三点规则。(1)如参与运算的变量类型不同,则先转换成同一类型,然后进行运算。(2)转换按数据长度增加的方向进行,以保证精度不降低。例如,当int型和Number型运算时,先把int转成Number后再进行计算。(3)在赋值运算中,当两边的数据类型不同时,将赋值符号右边的类型转换成左边的类型。如果右边的数据类型长度比左边长,将丢失一部分数据。例如:var PI
14、:Number=3.1415var s:int,r:int=5;s=r*r*PI;2.2.4 类型转换类型转换c2 2强制转换强制转换表2.4、表2.5和表2.6列出了不同数据类型之间的转换结果。数 据 类 型转 换 结 果Booleantrue为1,false为0Date转换为从1970年1月1日24时开始计算的毫秒值null0Object如果实例为null,转换为NaN,其他为0String如果是数字则转换为数字,否则为0undefined转换为NaN,其他为0数 据 类 型转 换 结 果Number、int、uint如果为0转换为false,否则为truenullfalseObject如
15、果实例为null,转换为false,否则为trueSring如果是null或空字符串,转换为false,否则为true数 据 类 型转 换 结 果Number、int、unit数字字符串nullnullDate日期字符串Array所有数组元素组成的字符串Object如果实例为null,转换为null,否则为(object Object)Booleanfalse或者true2.3 运算符和表达式运算符和表达式v2.3.1 2.3.1 表达式表达式表达式是由常量、变量、函数和运算符按照一定的语法规则组成的序列。每个表达式都有一个值及其类型。表达式求值按照运算符的优先级和结合性规定的顺序进行。例如,
16、以下表达式所示:x、x+y、x*y、x/y、x%y、(x+y)*(x-y)、x+y2.3.2 运算符运算符运算符按照操作数的个数可以分为一元运算符、二元运算符和三元运算符。一元运算符:具有一个操作数,如递增运算符(+)和递减运算符(-)。二元运算符:具有两个操作数,如+、-、*、/、%。三元运算符:具有三个操作数,如?:。运算符按照其功能的不同分为以下7类。算术运算符:如+、-、*、/、%、+、-。逻辑运算符:如!、&、|。比较运算符:如、=、=、!=。条件运算符:如?:。位运算符:如、&、|、。赋值运算符:如=、+=、-=。其他运算符:下标运算符、分量运算符。2.3.3 算术运算符算术运算符
17、c1 1一元运算符一元运算符如“+x”表示x的值先加1,然后返回x。“x+”表示先返回x,然后x的值加1。前减和后减的原理与加法类似。例如:var x:Number=0;trace(+x);/输出1trace(x);/输出1trace(x+);/输出1trace(x);/输出2c2 2二元运算符二元运算符(1)加法运算符“+”为双目运算符,表示两个操作数相加。(2)减法运算符“-”为双目运算符,表示两个操作数相减,“-”也可以作为负值运算符,此时为单目运算符,如“-5”。(3)乘法运算符“*”表示两个操作数相乘。(4)除法运算符“/”表示两个操作数相除,若参与运算的操作数都为整型,则结果也为整
18、型。若其中有一个为实型,则结果为实型。(5)求余运算符“%”表示两个操作数相除求余数。2.3.4 逻辑运算符逻辑运算符(1)非运算符“!”为单目运算符,具有右结合性。参与运算的操作数为true时,结果为false;操作数为false时,结果为true。例如:trace(!(10);/输出false由于1 0为true,则非运算后的结果为false。(2)与运算符“&”为双目运算符,具有左结合性。当参与运算的两个操作数都为true时,结果才为true,否则为false。例如:trace(true&false);/输出falsetrace(true&true);/输出true(3)或运算符“|”为
19、双目运算符,具有左结合性。当参与运算的两个操作数只要有一个为true,结果就为true。当两个操作数都为false时,结果才为false。例如:trace(false|true);/输出truetrace(false|false);/输出false2.3.5 比较运算符比较运算符比较运算符用于对两个值进行比较。比较运算符包括“”(大于)、“=”(大于等于)、“2);/输出和falsetrace(1=2);/输出falsetrace(1=2);/输出true2.3.6 条件运算符条件运算符条件运算符“?:”是三元运算符,用于条件求值。格式如下所示:?:第一个操作数必须是布尔表达式,其含义是当布尔
20、表达式为真时,整个表达式取表达式1的值,否则取表达式2的值。例如:trace(12?3:4);/输出32.3.7 位运算符位运算符(1)位与“&”运算符是双目运算符,其功能是把参与运算的两个数各自对应的二进位相与,只有对应的两个二进位均为1时,结果才为1,否则为0。参与运算的两个数以补码形式出现。例如,9&5的算式如下:00001001(9的二进制补码)&00000101(5的二进制补码)00000001(1的二进制补码)(2)位或“|”运算符是双目运算符,把参与运算的两个数各自对应的二进制位相或。(3)位非“”运算符为单目运算符,对参与运算的数的各个二进制位按位求反。(4)位异或“”运算符是
21、双目运算符,把参与运算的两个数所对应二进制位相异或。(5)左移“”运算符是双目运算符,把“”运算符是双目运算符,把“”运算符左边的数的二进制位全部右移若干位。2.3.8 赋值运算符赋值运算符(1)简单赋值运算符“=”是最常用的一个运算符。(2)复合算数赋值运算符包括+=、-=、*=、/=和%=。算数赋值运算符和算数运算符是一一对应的关系,它们和赋值运算符一样,运算符左边必须为变量。(3)复合位运算赋值运算符包括&=、|=、=、=、=。2.3.9 其他运算符其他运算符(1)下标运算符“”是数组中用于取得数组元素的运算符,例如:var arr:Array=a,b;trace(arr0);/输出a(
22、2)分量运算符“.”用于获得属性和方法,例如:var arr:Array=a,b;trace(arr.length);/输出22.4 流程控制流程控制v2.4.1 2.4.1 条件控制语句条件控制语句c1 1ifelseifelse语句语句(1)if语句。if语句只用一个if条件当做单纯的判断,语法格式如下:if(condition)/语句块其中condition为判断的条件表达式,表达式返回值为布尔型。如果表达式返回true,则执行花括号“”中的ActionScript语句块;如果表达式返回false,则跳过这段代码。例如:if(21)/判断2是否大于1trace(21);/输出“21”2.
23、4.1 条件控制语句条件控制语句(2)ifelse语句。if语句在结构上有一个缺陷,就是如果不满足条件,那么不会做任何处理,也不会返回任何结果。在后面加上一个else条件则可以避免这个问题,语法格式如下:if(condition)/代码段1else/代码段22.4.1 条件控制语句条件控制语句(3)ifelse ifelse语句。当需要判断的条件不止一个时,不能只使用一个if条件做判断,例如判断一个数等于不同值的情况,这时可以在中间加上else if判断,语法格式如下:if(condition1)/代码段1else if(condition2)/代码段2else/代码段n2.4.1 条件控制语
24、句条件控制语句c2 2swithswith语句语句switch语句非常类似于if语句,因为它也是根据条件选择性地执行某段程序代码块。如同ifelse ifelse语句一样。语法格式如下:switch(expr)case expr 1:/代码段1break;case expr 2:/代码段2break;default:/代码段n2.4.1 条件控制语句条件控制语句程序中break语句的作用是跳出程序,使程序停止运行。例如:import mx.controls.Alert;var date:Date=new Date();var d:Number=date.getDay();/获取当前的星期数va
25、r result:String=null;switch(d)case 1:result=星期一;break;case 2:result=星期二;break;case 3:result=星期三;break;case 4:result=星期四;break;case 5:result=星期五;break;case 6:result=星期六;break;case 0:result=星期日;break;default:result=出错了!;break;Alert.show(result);2.4.2 循环控制语句循环控制语句c1 1forfor循环循环for语句的格式如下:for(表达式1;表达式2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _Flex_4 脚本语言 ActionScript_30 基础
限制150内