第3章ActionScript3.0.ppt
《第3章ActionScript3.0.ppt》由会员分享,可在线阅读,更多相关《第3章ActionScript3.0.ppt(55页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第3章 ActionScript 3.0,ActionScript 3.0是一种功能强大的编程语言,负责Flex应用的业务逻辑的实现和对应用程序进行控制。用户通过使用MXML和ActionScript共同完成Flex应用的开发。本章主要介绍ActionScript 3.0以及如何在Flex 2中使用ActionScript 3.0。本章侧重于基本语法的讲述,具体的编程接口感兴趣的读者可以参看相关的API说明。,3.1 ActionScript 3.0简介,ActionScript是Flash Player运行环境的编程语言,主要应用于Flash动画和Flex应用的开发。ActionScript
2、实现了应用程序的交互、数据处理和程序控制等诸多功能。ActionScript的执行是通过Flash Player中的ActionScript虚拟机(ActionScript Virtual Machine)实现的。ActionScript代码通常被编译为ABC字节码,执行时与其他资源以及库文件一同编译为SWF文件,在Flash Player中运行。随着Flash和Flex的发展,ActionScript也不断地发生变化。从ActionScript 1.0、ActionScript 2.0到现在的ActionScript 3.0,ActionScript逐渐成为功能强大、符合规范的编程语言。对于
3、Flash和Flex开发者来说,ActionScript 3.0无疑注入了一针强心剂。,3.2 ActionScript 3.0语法基础,我们学习一门外语的时候,首要学习它的语法。而学习一门编程语言,也是如此。语法是每一种编程语言最基础的东西,例如如何设定变量、使用表达式、进行基本的运算。本章以及本章后面的章节都将介绍ActionScript 3.0的基本语法,即ActionScript 3.0最基础的部分。,3.2.1 语法、语句和表达式,语法可以理解为规则,即正确构成编程语句的方式。必须使用正确的语法来构成语句,才能使代码正确地编译和运行。这里,语法是指编程所用的语言的语法和拼写。编译器无
4、法识别错误的语法。语句负责执行特定的动作。例如赋值、比较。下面的例子中if语句是一个条件语句,它可以通过对表达式的判断确定下一个动作。/ if 语句if (condition) / 语句;,3.2.2 分号和冒号,分号常用来作为语句的结束和循环中参数的隔离。ActionScript 3.0的语句以分号(;)字符结束,如下面两行代码中所示。var myNum:Number = 50;myLabel.height = myNum;注意:使用分号终止语句能够在单个行中放置不止一条语句,但是这样做往往会使代码难以阅读。分号还可以用在for循环中,作用是分割for循环的参数,如以下代码所示。var i:
5、Number;for (i = 0; i 10; i+) trace(i); / 0,1,.,9,3.2.3 括号,括号通常用来对代码进行划分。ActionScript 3.0中的括号包含两种:大括号“”和小括号“()”。无论大括号还是小括号都需要成对出现。1大括号使用大括号可以对ActionScript 3.0中的事件、类定义和函数组合成块。在包、类、方法中,均以大括号作为开始和结束的标记。控制语句(例如if.else或for)中,利用大括号区分不同条件的代码块。下面的例子是使用大括号为if语句区别代码块,避免发生歧义。var num:Number;if (num = 0) trace(输出
6、为0);2小括号小括号的用途很多,例如保存参数、改变运算的顺序等。下面的例子显示了小括号的几种用法。myFunction(Carl, 78, true); /保存参数var x:int = (3+4)*7; /改变运算顺序,3.2.4 文本,文本是直接出现在代码中的值。例如true、false、0、1、52,甚至字符串“abcdefg”。 下面列出的都是文本。17hello-39.4nullundefinedtruefalse文本还可以组合起来构成复合文本。下面的例子中显示了使用文本对数组进行初始化。var myStrings:Array = new Array(alpha, beta, ga
7、mma);var myNums:Array = new Array(1, 2, 3, 5, 8);,3.2.5 注释,注释是一种对代码进行注解的方法,编译器不会把注释识别成代码。注释可以使ActionScript程序更容易理解。注释的标记为/*和/。使用用/*创建多行注释,/只能创建单行注释和尾随注释。1单行注释单行注释用于为代码中的单个行添加注释。 2多行注释对于长度为几行的注释,可以使用多行注释(又称块注释)。 3尾随注释尾随注释用于在代码所在的行内添加注释。,3.2.6 关键字与保留字,在ActionScript 3.0中,不能使用关键字和保留字作为标识符,即不能使用这些关键字和保留字作
8、为变量名、方法名、类名等。“保留字”只能由ActionScript 3.0使用,不能在代码中将它们用作标识符。保留字包括“关键字”。如果将关键字用作标识符,则编译器会报告一个错误。表列出了ActionScript 3.0关键字。,ActionScript 3.0关键字,3.2.7 常量,常量是指具有无法改变的固定值的属性。ActionScript 3.0新加入const关键字用来创建常量。在创建常量的同时,需为常量进行赋值。常量创建的格式如下所示。const 常量名:数据类型 = 常量值下面的的例子定义常量后,在方法中使用常量:public const i:Number=3.1415986;
9、/定义常量public function myWay()trace(i); /输出常量,3.3 变量,在前面的内容中重点介绍了ActionScript 3.0的一些特点和编程的基础,在以下的章节中将从语法的角度深入介绍ActionScript 3.0,使读者熟悉ActionScript 3.0的语法规则。,3.3.1 变量在程序中的作用,变量主要用来保存数据。变量在程序中起着十分重要的作用,如:存储数据、传递数据、比较数据、简练代码、提高模块化程度和增加可移植性等。1存储数据2比较数据3传递数据4简化代码5提高模块化程度和增加可移植性,3.3.2 变量的声明和赋值,在使用变量时,首先要声明变量
10、。声明变量时,可以为变量赋值,也可等到使用变量时再为变量赋值。1声明变量2为变量赋值3变量命名规则4.变量默认值,3.4 运算符,运算符是一种特殊的函数,它们具有一个或多个操作数并返回相应的值。本节介绍常见类型的运算符、运算符优先级和运算符结合律的一般规则。,3.4.1 运算符与操作数,运算是对数据的加工。利用运算符可以进行一些基本的运算。被运算的对象称为操作数,即被运算符用作输入的值。运算符通常是文本、变量或表达式。下面的例子中,将加法运算符“+”和乘法运算符“*”与三个操作数2、3和4结合进行运算。赋值运算符“=”随后使用该值将运算所得的值14赋给变量sum。var sum:uint =
11、2 + 3 * 4; 运算符包含一元、二元和三元。一元运算符只有一个操作数,例如递增运算符“+”。 二元运算符有两个操作数,例如除法运算符“/”。三元运算符有三个操作数,例如条件运算符“?:”。,3.4.2 运算符的优先级和结合律,运算符的优先级和结合律决定了运算符的处理顺序。虽然编译器先处理乘法运算符“*” 然后再处理加法运算符“+”似乎是自然而然的事情,但实际上编译器要求显式指定先处理哪些运算符。此类指令统称为“运算符优先级”。ActionScript 3.0定义了一个默认的运算符优先级,可以使用小括号运算符“( )”。下面的例子中使用小括号改变默认优先级,强制编译器先处理加法运算符,然后
12、再处理乘法运算符。var sum:uint = (2 + 3) * 4; trace(sum)/输出20,而不是14,3.4.3 主要运算符,主要运算符包括那些用来创建Array和Object、对表达式进行分组、调用函数、实例化类实例以及访问属性的运算符。表列出了所有主要运算符,它们具有相同的优先级。,主要运算符,3.4.4 一元运算符,一元运算符只有一个操作数。递增运算符(+)和递减运算符(-)是“前缀运算符”,它们在表达式中出现在操作数的前面。前缀运算符与它们对应的后缀运算符不同,因为递增或递减操作是在返回整个表达式的值之前完成的。下面的例子说明如何在递增值之后返回表达式+i的值。var
13、i:Number = 0;trace(+i);/输出1trace(i);/输出1,3.4.5 算术运算符,算术运算符包含:加“+”、减“-”、乘“*”、除“/”、模运算“%”和求反运算“-”。下面的例子显示了加、减、乘、除的用法。var i:int = 7;var j:int = 9;var sum:int = i+j;trace(sum)/输出16var sub:int = j-i;trace(sub)/输出2var mul:int = i*j;trace(mul)/输出63var div:int = i/j;trace(div)/输出0,3.4.6 关系运算符,关系运算符用来对操作数进行比
14、较,常用于关系表达式中作为判断的条件。关系运算符是二元运算符,有两个操作数,对两个操作数进行比较。比较的结果为布尔型(Boolean),即true或者false。表列出了所有关系运算符,它们具有相同的优先级。,关系运算符,3.4.7 等于运算符,等于运算符为二元运算符,用来判断两个操作数是否相等。等于运算符也常用于条件和循环运算。原理与条件运算符类似。表3.11列出了所有等于运算符,它们具有相同的优先级:,等于运算符,3.4.8 逻辑运算符,逻辑运算符即与或运算符。它是二元运算符,对两个操作数进行与操作或者或操作,返回布尔型结果。逻辑运算也常用于条件运算和循环运算,一般情况下,逻辑运算符的两边
15、为表达式。逻辑运算符具有不同的优先级。表按优先级递减的顺序列出了逻辑运算符。,逻辑运算符,3.4.9 as和typeof,as运算符常用来检查数据类型是否符合要求。如果符合要求返回被判断的对象,格式与is运算符一致。当变量的数据类型符合指定数据类型时,返回true,否则,返回false。下面的例子显示如何使用as运算符。var i:int = 7;if (i as Number) /当变量i为Number型时,输出“ok” trace(ok); else trace(no); ,3.4.10 三元运算符,三元运算符即条件运算符“?:”,包含三个操作数。条件运算符是if.else 条件语句的一种
16、简化的表达方式。该运算符的格式如下所示。表达式1?表达式2:表达式3该运算的操作过程是:若表达式1为true,则执行表达式2;否则执行表达式3。下面的例子显示如何使用条件运算符。var a:String =silence;var i:int;(a!=)?(i=1):(i=0); /当a不为空时执行i=1,否则执行i=0trace(i);/输出1,3.4.11 赋值运算符,赋值运算符有两个操作数,它根据一个操作数的值对另一个操作数进行赋值。表列出了赋值运算符,它们具有相同的优先级.,赋值运算符,3.5 数据类型,数据是程序的必要组成部分,也是程序处理的对象。数据类型描述一个数据片段,以及可以对其
17、执行的各种操作。数据存储在变量中。在创建变量、对象实例和函数定义时,通过使用数据类型来指定要使用的数据的类型。数据类型是对程序所处理的数据的抽象。本节介绍ActionScript 3.0中的数据类型。,3.5.1 数据类型概述,ActionScript 3.0中包含两类数据类型:基元数据类型(Primitive data type)和复杂数据类型(Complex data type)。基元数据类型即编程时基本数据类型。包括Boolean、int、Null、Number、String、uint和void。复杂数据类型包含:Object、Array、Date、Error、Function、RegE
18、xp、XML和XMLList。自定义类属于复杂数据类型。基元数据类型的处理速度通常比复杂复杂数据类型的处理速度快。ActionScript 3.0按照一种尽可能优化内存和提高速度的特殊方式来存储基元值。,3.5.2 常用数据类型,在对数据类型分类后,下面对实际编程中常用的数据类型进行简要的介绍。常用的数据类型包含:Boolean、int、uint、Number、String、Object、Array,void、Null。1Boolean2int、uint、Number3String 4Object 数据类型5.Array数据类型6.void数据类型7.Null数据类型,3.5.3 类型检查,类
19、型检查即对变量值进行检查,是否符合变量的数据类型声明。类型检查可以在编译时或运行时执行。静态类型语言(如C+和Java)在编译时执行类型检查。动态类型语言(如 Smalltalk和Python)在运行时执行类型检查。ActionScript 3.0是动态类型的语言,它在运行时执行类型检查,同时也支持在名为“严格模式(Strict Mode)”的特殊编译器模式下,在编译时执行类型检查。在严格模式下,类型检查既发生在编译时也发生在运行时,但是在标准模式(Standard Mode)下,类型检查仅发生在运行时。在构造代码时,动态类型的语言带来了极大的灵活性,但代价是在运行时可能出现类型错误。静态类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ActionScript3
限制150内