ActionScript3.0完全自学手册电子教案.ppt_第1页
ActionScript3.0完全自学手册电子教案.ppt_第2页
ActionScript3.0完全自学手册电子教案.ppt_第3页
ActionScript3.0完全自学手册电子教案.ppt_第4页
ActionScript3.0完全自学手册电子教案.ppt_第5页
已阅读5页,还剩493页未读 继续免费阅读

下载本文档

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

文档简介

第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的推出而同步推出的脚本编程语言。本节将对 ActionScript3.0进行简要的介绍,并通过一些具 体的实例图片,展示了常见的ActionScript的应 用领域。 1.1.1 ActionScript 3.0介绍 ActionScript3.0与ActionScript以前的版本有个本质上的 不同。它是一门功能强大、符合业界标准的一门面向对象 的编程语言。它在Flash编程语言中有着里程碑的作用,是 用来开发富应用程序(RIA)的重要语言。 ActionScript 3.0在用于脚本撰写的国际标准化编程语言 ECMAScript的基础之上,对该语言做了进一步的改进,可 为开发人员提供用于丰富Internet应用程序(RIA)的可靠 的编程模型。开发人员可以获得卓越的性能并简化开发过 程,便于利用非常复杂的应用程序、大的数据集和面向对 象的、可重复使用的基本代码。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结合,创建 各种不同的应用特效,实现丰富多彩的动画效果,使Flash创建的动画更 加人性话,更具有弹性效果。这些基础应用当中,应用最为广泛的就是使 用ActionScript脚本控制的弹性菜单。下面是一个弹性的效果, 1.2 ActionScript 3.0的新特色 ActionScript 3.0包括二部分:核心语言和Flash Player API。核心语言用于定义编程语言的基本 结构, 比如声明变量,创建表达式控制程序结构 和数据类型等。Flash Player API是由一系列用 于实现特定功能的flash player类组成。 1.2.1 核心语言的新特色 ActionScript3.0核心语言与ECMAScript标准兼容,并和新 改进的一些功能区域进行结合。下面是对一些其开发者方 便的地方和用法总结的一些新特点: 1运行时的异常处理机制 2运行时类型 3密封类 4闭包方法 5E4X 6正则表达式 7命名空间 8新基元类型 1.2.1 Flash Player API 新功能 Flash Player API为增强Flash Player容纳 ActionScript语言的能力而引入的一组类和功能 。这种功能把ActionScript核心语言和Flash平台 之间建立了一座桥梁,大大提高了Flash应用程序 的能力,并对核心语言起到了重要的补充作用。 下面列出一些Flash Player API功能的新特点: 1DOM3事件模型 2显示列表API 1.3 Flash CS3的动作面板介绍 Flash CS3中可以使用动作面板、“脚本窗口”或 者外部编辑器的创作环境中田间ActionScript代 码。本节就来介绍一下Flash CS3的动作面板窗口 和Flash CS自带的编辑器窗口,并将详细的介绍 功能按钮的作用。 1.3.1 动作面板概述 如果要在Flash CS3中加入ActionScript代码,可以直接使用动作面板来输入。 要打开动作面板,请执行下面的操作:单击【窗口|【动作】,或者按【F9】。 打开后的动作面板如图所示。 下面对图中各部分的名称及作用加以说明。 A:脚本窗格,用于输入代码的地方。 B:面板菜单,单击后可显示动作面板功能菜单 C:动作工具箱,可以通过双击或者拖动的方式将其中的ActionScript元素添加到脚 本窗格中。 D:脚本导航器,其有两个功能,一是通过单击其中的项目,可以将与该项目相关的 代码显示在脚本窗口中,二是通过双击其中的项目,对该项目的代码进行固定操作。 1.3.2 脚本窗口概述 Action Script 3.0是很好的面向对象编程语言, 同样Flash CS3也提供了一个很不错的脚本编辑器 ,这就是Flash的脚本窗口。使用脚本窗口可以创 建或者导入外部的脚本文件,这些文件可以是 ActionScript、Flash Communication或Flash JavaScript文件。 1.3.3 动作面板和脚本窗口的工具介绍 在动作面板和脚本窗口的上侧都有一排功能按钮,利用这些功能按钮可以 很方面的进行ActionScript代码的输入和编写,下面对这些按钮进行具体 的说明。 :将新项目添加到脚本中按钮,该按钮主要用于显示语言元素,这些元素 同时也会显示在“动作”工具箱中。可以利用它来选择要添加到脚本中的 项目或者元素名称。 :查找按钮,主要用于查找并替换脚本中的文本。 :插入目标路径按钮(仅限动作面板),可以帮助为脚本中的某个动作设 置绝对或相对目标路径。 :语法检查按钮,用于检查当前脚本中的语法错误。 :自动套用格式按钮,用来调整脚本的格式以实现正确的编码语法和更好 的可读性。 :显示代码提示按钮:用于在关闭了自动代码提示时,可使用此按钮来显 示正在吃力的代码行的代码提示。 :调试选项按钮(仅限动作面板),用于设置和删除断点,以便在调试时 可以逐行执行脚本中的每一行。 1.3.3 动作面板和脚本窗口的工具介绍 :折叠成对大括号按钮,用于对出现在当前包含插入点的成对大括号或小括号 间的代码进行折叠。 :折叠所选按钮:用于折叠当前所选的代码块。 :展开全部按钮:用于展开当前脚本中所有折叠的代码。 :应用块注释按钮,用于将注释标记添加到所选代码块的开头和结尾。 :应用行注释按钮,用于在插入点处或所选多行代码中每一行的开头处 添加单行注释标记。 :删除注释按钮,用于从当前行或当前选择内容的所有行中删除注释标记 。 :显示/隐藏工具箱按钮,用于显示或隐藏“动作”工具箱。 :脚本助手按钮(仅限动作面板),其用于打开和关闭“脚本助手”模式 。 :帮助按钮,用于显示“脚本”窗格中所选 ActionScript 元素的参考信 息。 :面板菜单 (仅限动作面板),包含适用于动作面板的命令和首选参数 。 1.4 ActionScript 3.0的首选参数设置 无论是在动作面板还是脚本窗口中编辑ActionScript代码,都可以通过设 置首先参数来配置输入的ActionScript代码的格式。 要设置ActionScript 3.0的首选参数,需要先打开首选参数窗口。请执行 下面的操作:选择【编辑】|【首选参数】,打开首选参数对话框, 1. 工具提示样式的代码提示 2使用菜单样式的代码提示 1.5 面向对象编程概述 ActionScript 3.0是为面向对象编程而准备的一种脚本语 言。本节将简单介绍一下面向对象编程的基本概念。 面向对象编程,英文为:Object Oriented Programming, 简写为OOP,意思为面向对象程序设计,它是一种计算机编 程架构。 程序(program)是为实现特定目标或者解决特定问题而用 计算机语言编写的命令序列的集合。它可以是一些高级程 序语言开发出来的可以运行的可执行文件,也可以是一些 应用软件制作出的可执行文件,比如Flash编译之后的SWF 文件。 编程是指为了实现某种目的或需求,使用各种不同的程序 语言进行设计,编写能够实现这些需求的可执行文件。 1.6 Flash CS3的第一个“Welcome You” Flash CS3中有两种写入ActionScript 3.0代码的方法: 一种是在时间轴的关键帧加入ActionScript代码。 另一种是在外部写出呢个单独的ActionScript类文件,然 后在绑定或者导入到fla文件中来。 ActionScript中的类有三种用法:一是和Flash中的库元件 进行绑定;二是和fla文件绑定;三是使用import关键字导 入类。 ActionScript3.0开发的程序,推荐文档与代码分离,不推 荐把代码写在关键帧上。下面用两种方法来开始第一个 “Welcome You”程序。 1在关键帧上加入代码 2利用文档类制造第一个“Welcome You”程序 第2章 AS3.0编程语言基础 语法、数据、变量、运算符和语句构成了编程语 言的基础。本章将通过大量的测试代码。详细的 介绍ActionScript 3.0中的语法、数据类型,变 量以及运算符。通过本章的学习,为以后的面向 对象编程将打下一个坚实的基础。 2.1 AS3.0语法 任何一门编程语言在编写代码时都必须遵循一定 的规则,这个规则就是语法。本节将着重介绍从 ActionScript 2.0开始使用的点语法和区分大小 写,了解编程常用的标点符号的使用,以及程序 注释的使用方法。 2.1.1 点语法 Flash中使用点(.)运算符来访问对象的属性和 方法,点运算符主要用于下面的几个方面。 1可以采用对象后面跟点运算符的属性名称(方 法)名称来引用对象的属性(方法)。 2可以采用点运算符表示包路径。 3可以使用点运算符描述显示对象的路径。 2.1.2 标点符号使用 在Flash中有多种标点符号都很常用,分别为:分号(;)、逗号(,)、冒号(:)、 小括号(())、中括号()和大括号()。这些标点符号在Flash中都有各自不 同的作用,可以帮助定义数据类型,终止语句或者构建ActionScript代码块。 1分号(;):ActionScript语句用分号(;)字符表示语句结束。 2逗号(,):逗号的作用主要用于分割参数,比如函数的参数,方法的参数等等。 3冒号(:):冒号的作用主要用于为变量指定数据类型。要为一个变量指明数据类 型,需要使用var关键字和后冒号法为其指定。 4小括号(()):小括号在ActionScript3.0中有三种用途。 首先,在数学运算方面,可以用来改变表达式的运算顺序。小括号内的数学表达式优 先运算。 其次,在表达式运算方面,可以结合使用小括号和逗号运算符,来优先计算一系列表 达式的结果并返回最后一个表达式的结果。 5中括号():中括号主要用于数组的定义和访问, 6大括号():大括号主要用于编程语言程序控制,函数和类中。 在构成控制结构的每个语句前后添加大括号(例如ifelse 或for),即使该控制结 构只包含一个语句。 2.1.3 注释 注释是使用一些简单易懂的语言对代码进行简单 的解释的方法。注释语句在编译过程中并不会进 行求值运算。可以用注释来描述代码的作用,或 者返回到文档中的数据。注释也可以帮助记忆编 程的原理,并有助于其他人的阅读。若代码中有 些内容阅读起来含义大不明显,应该对其添加注 释。 ActionScript3.0中的注释语句有两种:单行注释 和多行注释。 单行注释以两个单斜杠(/)开始,之后的该行 内容均为注释。比如下面的代码: trace(“1234“)/输出:1234 2.1.4 关键字和保留字 保留字,从字面上就很容易知道这是保留给 ActionScript 3.0语言使用的英文单词。因而不 能使用这些单词作为变量、实例、类名称等。如 果在代码中使用了这些单词,编译器会报错。 ActionScript3.0中的保留字分为3类:词汇关键 字、语法关键字和供将来使用的保留字。 1词汇关键字 2句法关键字 3供将来使用的保留字。 2.2 变量和常量 变量和常量,都是为了储存数据而创建的。变量 和常量就像是一个容器,用于容纳各种不同类型 的数据。当然对变量进行操作,变量的数据就会 发生改变,而常量则不会。 变量必须要先声明后使用,否则编译器就会报错 。道理很简单,比如现在要去喝水,那么你首先 要有一个杯子,否则怎么样去装水呢?要声明变 量的原因与此相同。 2.2.1 声明变量的语法 在ActionScript 3.0中,使用var关键字来声明变 量。格式如下所示。 var 变量名:数据类型; var 变量名:数据类型=值; 变量名加冒号加数据类型就是声明的变量的基本 格式。要声明一个初始值,需要加上一个等号并 在其后输入响应的值。但值的类型必须要和前面 的数据类型一致。 2.2.2 变量的命名规则 变量的命名既是任意的,又是有规则,有目的的。随手牵 来、杂乱无章的命名在Flash里面容易引起代码的混乱,也 不容易进行维护操作。 变量的命名首先要遵循下面的几条原则: 它必须是一个标识符。它的第一个字符必须是字母、下划 线(_)或美元记号($)。其后的字符必须是字母、数字 、下划线或美元记号。注意:不能使用数字作为变量名称 的第一个字母。 它不能是关键字或动作脚本文本,例如true、false、null 或undefined。特别不能使用ActionScript的保留字,否则 编译器会报错。 它在其范围内必须是惟一的,不能重复定义变量。 2.2.3 变量的作用域 变量的作用域指可以使用或者引用该变量的范围,通常变 量按照其作用域的不同可以分为全局变量和局部变量。全 局变量指在函数或者类之外定义的变量,而在类或者函数 之内定义的变量为局部变量。 全局变量在代码的任何地方都可以访问,所以在函数之外 声明的变量同样可以访问,如下面的代码,函数Test()外 声明的变量i在函数体内同样可以访问。 var i:int=1; /定义Test函数 function Test() trace(i); Test()/输出:1 2.2.4 变量的默认值 变量的默认值是指变量在没有赋值之前的值。对于 ActionScript3.0的数据类型来说,都有各自的默认值,下 面使用代码来测试一下: 通过上面的代码输出,已经可以得到这些数据类型变量的 默认值,分别为: Boolean型变量的默认值是:false。 int型变量的默认值是:0。 Number型变量的默认值是:NaN。 Object型变量的默认值是:null。 String型变量的默认值是:null。 uint型变量的默认值是:0。 *型变量的默认值是:undefined。 2.2.5 使用const声明常量 Action Script 3.0中增加了一个const关键字, 用于声明常量。常量是指具有无法改变的固定值 的属性。比如Math.PI就是一个常量。常量可以看 做一种特殊的变量,不过这种变量不能赋值,不 能更改而已。 使用用const声明常量的语法格式和var声明的变 量的格式一样: const 常量名:数据类型; const 常量名:数据类型=值; 下面声明常量的代码: const g:Number=9.8; 2.3 基础数据类型 和其它的面向对象的编程的数据类型一样,ActionScript3.0的数 据类型同样分为两种,具体划分方式如下所示。 基元型数据类型:Boolean、int、Number、String和uint。 复杂型数据类型:Array、Date、Error、Function、RegExp、XML 和XMLList。 一般来说,基元值的处理速度通常比复杂值的处理速度要快。 基元型数据和复杂型数据类型的最大的区别是:基元型是值对类 型数据,而复杂型是引用类型数据。值对类型直接储存数据,使 用它为另一个的变量赋值之后,若另一个变量改变,并不影响原 变量的值。引用类型指向要操作的对象,另一个变量引用这个变 量之后,若另一变量发生改变,原有的变量跟着也要发生改变。 基元型数据类型都是值对类型数据,复杂型数据都是引用类型数 据。 另外,最明显的一个区别是,如果数据类型能够使用new关键字创 建,那么它一定是引用型数据变量。 2.3.1 基础数据类型说明 本节通过大量的测试代码,来说明各种不同的数 据类型的用法和使用中的注意事项。 1Boolean 数据类型 2数字:int、uint和Number 3String 数据类型 4Array数组类型 5Object数据类型 6Object数据类型 2.3.2 数据类型检查 任何编程代码在执行前或者执行时都要执行数据类型的检 查,以避免出现数据错误。ActionScript 3.0是动态类型 的语言,它默认的是执行时进行数据类型检查。同时它也 在适合使用“严格模式”的编译器在编译时执行数据类型 检查。在使用严格模式的编译器中,数据类型检查既可以 在执行前执行编译器检查,也可以在运行时执行运行时检 查。在标准模式下,只支持默认的执行时数据类型检查。 比如说在程序编写过程中,要明确传递变量值的类型和接 受参数类型相同。比如下面的代码: function func(mystr:String) trace(mystr); var str:String=“welcome you“; func(str); 2.3.3 隐式数据类型转换 数据类型转换是指把某个值转换为其它类型的数据。类型 的转换有两种方式:隐式转换和显式转换。隐式转换又称 为强制转换,由Flash Player在运行时执行。比如将2赋值 给Boolean数据类型的变量,则Flash Player会先将2转换 为布尔值true,然后再将其赋值给该变量。 隐式转换可以称为自动转换,是在程序编译的过程中由程 序本身来进行数据类型的转换。它主要发生在许多上下文 中。主要分为以下几种情况: 在赋值语句中。 在将值作为函数的参数传递时。 在从函数中返回值时。 在使用某些运算符(如加法运算符(+)的表达式中。 2.3.4 显式数据类型转换 显式转换是指代码若指示编译器将一个数据类型 的变量视为属于另一个类型的变量时执行该转换 。该转换主要利用数据类型的对象名称来转换。 常用的数据转换均为此方式。 显示转换是利用数据类型的对象名称来转换,常 见的主要有下面的几种。 1转换为 int、uint 和 Number 转换为Boolean 转换为 String 2.3.5 无类型说明符 ActionScript 3.0引入了三种特殊类型的无类型说明符:* ,void和null。 使用*类型用于指定属性是无类型的。使用*作为类型注释 与不使用类型注释等效。从无类型属性中读取的表达式可 视为无类型表达式。该说明符主要用于两个方面:将数据 类型检查延缓到运行时和将undefined存储在属性中。 void用于说明定函数无法返回任何值。void类型只有一个 值:undefined。该说明符仅用于声明函数的返回类型。 null是一个没有值的特殊数据类型。Null数据类型只有一 个值:null。Null数据类型的不与任何类相关联。不可将 Null数据类型用作属性的类型注释。 2.4 运算符与表达式 学习一门编程语言,首先要弄清楚的就是如何对 其中的数据进行运算。使用表达式来表达想要达 到的效果,使用运算符来进行相关的运算,这就 是数据运算的关键。本节主要介绍常用的运算符 的用法。 2.4.1 运算符和表达式基础知识 运算符是可以通过给出的一个或者多个值来产生 另一个值的东西。可以说它是一种特殊的函数。 其中的值称为“操作数”,具体包括字面值、变 量和表达式。 运算符分为三种:一元运算符、二元运算符、三 元运算符。一元运算符只运算一个值,例如递增 运算符+;二元运算符比较常见,ActionScript 3.0中大部分运算符都是二元运算符;三元运算符 具有三个操作数,例如条件运算符(?:)具有3个 操作数。 2.4.2 赋值运算符 赋值运算符有两个操作数,它根据一个操作数的 值对另一个操作数进行赋值操作。ActionScript 中的赋值运算有12个, 赋值运算符 运算符执行的运算 = 赋值 *= 乘法赋值 /= 除法赋值 %= 求模赋值 += 加法赋值 -= 减法赋值 = 按位向右移位赋值 = 按位无符号向右移位赋值 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 关系运算符 关系运算符用于比较两个操作数的值的大小关系。常见的 关系运算符一般分为两类:一类用于判断大小关系,一类 用于判断相等关系。其具体情况如下: 判断大小关系:大于运算符、=大于等于 运算符、按位右移位、按位无符号移位 。同样,按位赋值运算符也有6个,对照按位运算符分别为: var b:int=34; trace(a/输出为:2 2.4.8 递加递减运算符 +递加运算符和递减运算符常用于循环计算过 程中,对循环中的变量进行递加或者递减操作。 比如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,执行该语句 。 表达式2:判断表达式的结果为false,执行该语 句。 2.4.10 其它运算符 在ActionScript3.0中还有几个常见的运算符,如:typeof 、is、as。下面对这几个运算符进行简单的说明: 1typeof运算符:typeof用于测试对象的的类型,使用的 方法如下: typeof(对象); 2is运算符:is运算符用于判断一个对象是不是属于一种 数据类型,返回Boolean型变量。如果对象属于同一类型, 则返回true,否则返回false。 3as运算符:as运算符和is运算符的使用格式相同,但是 返回的值不同。如果对象的类型相同,返回对象的值;若 不同,则返回null。 2.4.11 运算符的优先级 运算符的优先级顺序决定了一个表达式运算顺序。就像数学中的乘除运算要优于加减 运算一样,ActionScript 3.0 中的各运算符之间也有一个优先运算的顺序。具体请 参照表所示。 运算符优先顺序表 组运算符 主要 x:y () f(x) new x.y xy 关系 = as in instanceof is 等于= != = != 按位“与“ /执行第二句代码,给变量a赋值数值1 a=1; /执行第三句代码,变量a执行递加操作 a+; 3.2.2 选择结构 当程序有多种可能的选择时,就要使用选择结构 。选择那一个,要根据条件表达式的计算结果而 定。结构如图所示。 3.2.3 循环结构 循环结构就是多次执行同一组代码,重复的次数 由一个数值或条件来决定。结构如图所示。 3.3 选择程序结构 选择程序结构就是利用不同的条件去执行不同的 语句或者代码。ActionScript 3.0有三个可用来 控制程序流的基本条件语句。其分别为ifelse 条件语句、ifelse if条件语句、switch条件语 句。本节将详细讲解这三种不同的选择程序结构 。 3.3.1 ifelse 条件语句 ifelse条件语句判断一个控制条件,如果该条 件能够成立,则执行一个代码块,否则执行另一 个代码块。 ifelse条件语句基本格式如下: if(表达式) 语句1 else 语句2; 3.3.2 ifelse ifelse语句 ifelse条件语句执行的操作最多只有两种选择 ,要是有更多的选择,那就可以使用ifelse ifelse条件语句。 3.3.3 Switch语句 Switch语句相等于一系列的ifelse if语句,但是要比if语句 要清晰的多。switch 语句不是对条件进行测试以获得布尔值,而 是对表达式进行求值并使用计算结果来确定要执行的代码块。 Switch语句格式如下: switch (表达式) case: 程序语句1; break; case: 程序语句2; break; case: 程序语句3; break; default: 默认执行程序语句; 3.4 循环程序结构 在现实生活中有很多规律性的操作,作为程序来说就是要 重复执行某些代码。其中重复执行的代码称为循环体,能 否重复操作,取决于循环的控制条件。循环语句可以认为 是由循环体和控制条件两部分组成。 循环程序结构的结构一般认为有两种: 一种先进行条件判断,若条件成立,执行循环体代码,执 行完之后再进行条件判断,条件成立继续,否则退出循环 。若第一次条件就不满足,则一次也不执行,直接退出。 另一种是先执行依次操作,不管条件,执行完成之后进行 条件判断,若条件成立,循环继续,否则退出循环。 3.4.1 for循环语句 for循环语句是ActionScript编程语言中最灵活、应用最为广泛的 语句。for循环语句语法格式如下: for(初始化;循环条件;步进语句) 循环执行的语句; 格式说明如下: 初始化:把程序循环体中需要使用的变量进行初始化。注意要使 用var关键字来定义变量,否则编译时会报错。 循环条件:逻辑运算表达式,运算的结果决定循环的进程。若为 flase,退出循环,否则继续执行循环代码。 步进语句:算术表达式,用于改变循环变量的值。通常为使用+ (递增)或-(递减)运算符的赋值表达式。 循环执行的语句:循环体,通过不断改变变量的值,已达到需要 实现的目标。 3.4.2 while循环语句 while循环语句是典型的“当型循环”语句,意思是当满足 条件时,执行循环体的内容。while循环语句语法格式如下 : while(循环条件) 循环执行的语句 格式说明如下: 循环条件:逻辑运算表达式,运算的结果决定循环的进程 。若为true,继续执行循环代码,否则退出循环。 循环执行的语句:循环体,其中包括变量改变赋值表达式 ,执行语句并实现变量赋值。 3.4.3 dowhile循环语句 dowhile循环是另一一种while循环,它保证至 少执行一次循环代码,这是因为其是在执行代码 块后才会检查循环条件。dowhile循环语句语法 格式如下: do 循环执行的语句 while (循环条件) 循环执行的语句:循环体,其中包括变量改变赋 值表达式,执行语句并实现变量赋值。 循环条件:逻辑运算表达式,运算的结果决定循 环的进程。若为true,继续执行循环代码,否则 退出循环。 3.4.4 forin和for eachin语句 forin和for eachin语句都可以用于循环访问对象属性 或数组元素。下面分别使用两种语句来访问对象中的属性 。代码如下所示。 /定义一个对象lzxt,并添加属性name和age var lzxt:Object = name:“浪子啸天“, age:30; /执行遍历操作 for (var i:String in lzxt) /输出属性名称和属性值 trace(“for in 语句输出:“+i + “: “ + lzxti); /执行for each遍历操作 for each (var k:String in lzxt) /输出属性值 trace(“for each 语句输出:“+k); 3.4.5 循环的嵌套 嵌套循环语句,就是在一个循环的循环体中存在 另一个循环体,如此重复下去直到循环结束为止 ,即为循环中的循环。以for循环为例,格式如下 所示。 for (初始化; 循环条件; 步进语句) for (初始化; 循环条件; 步进语句) 循环执行的语句; 3.4.6 循环流程控制语句 在ActionScript 3.0中可以使用break和continue来控制循 环流程。break语句的结果是直接跳出循环,不再执行后面 的语句;continue语句的结果是停止当前这一轮的循环, 直接跳到下一轮的循环,而当前轮次中continue后面的语 句也不再执行。 下面的两个例子分别执行循环变量从0递增到10的过程,如 果i等于4,分别执行break和continue语句,看发生的情况 。代码如下所示。 /使用break控制循环 for (var i:int=0; i标签可将 JPEG、GIF、PNG类型的外部图像文件以及SWF文件和影片剪辑嵌入 到文本中。在显示文本对象中,文本在嵌入的图像旁自动换行。 若要使用该标签,必须将显示文本设置为多行和文本换行。 多行文本显示图形 第16章 字符串 字符串是大量字符的组合。在ActionScript 3.0 中使用顶级类String来管理和操作字符串。 String类提供了处理原始字符串数据的方法和属 性。此外还可以使用String()函数将任意对象的 值转换为String数据类型的对象。 在ActionScript 3.0编程中,字符串的地位十分 重要。本章介绍的处理方法对应用TextField、 StaticText、XML、ContextMenu和FileReference 对象都有很大的作用。 16.1 字符串基础知识 在ActionScript 3.0中,字符是文本数据的最小 单位,其内容为单个字母或符号。字符串是字符 组成的一个序列,其内容是一个文本值,即串在 一起而组成单个值的一系列字母、数字或其它字 符。 在ActionScript 3.0中,可使用双引号或单引号 将文本括起来以表示字符串值。下面的是几个字 符串的示例: “Hello“ “555-7649“ “/“ 16.2 创建字符串 在ActionScript 3.0中,String类用于表示字符串(文本 )数据。ActionScript字符串既支持ASCII字符也支持 Unicode字符。 ASCII字符是一种在计算机程序中表示文本字符和符号的系 统。ASCII字符系统支持26个字母英文字母表,以及有限的 一组其它字符。 Unicode字符也是一种在计算机程序中表示文本字符和符号 的系统,不过它是一个标准系统。Unicode系统允许使用任 何编写系统中的任何字符。 在ActionScript 3.0中,普通的字符串容易创建,而一些 特殊的字符需要通过转义字符来实现,本节将分别介绍创 建字符串的方法。 16.2.1 定义一个普通的字符串 普通的字符串的可以使用字符串文本直接创建。要创建字符串文本,可使用双引号 (“)或单引号()字符括起一些字符来创建。注意:在ActionScript 3.0中,使用双引 号和单引号创建的字符串没有任何区别。下面定创建的两个字符串是等效的: var str1:String = “hello“; var str2:String = hello; 除了使用字符串文本直接创建字符串,还可以使用String类的构造函数,借助new关 键字来定义。new关键字来创建字符串,如下代码所示。 var str1:String = new String(“hello“); var str2:String = new String(str1); var str3:String = new String(); 使用字符串文本和new关键字创建的字符串是等效的。例如下面创建的两个字符串的 效果相同。代码如下所示。 var str1:String = “hello“; var str2:String = new String(“hello“); 要注意的是,在使用字符串文本创建字符串时,双引号和单引号不能混用。也就是说 ,要使用双引号,一直使用双引号;要使用单引号,一直使用单引号。下面示例的两 种创建字符串文本的方式是错误的,代码如下所示。 var str1:String=“an incorrect string; var str2:String= an other incorrect string“; 16.2.2 定义含有转义字符的字符串 在ActionScript 3.0中,使用双引号和单引号将 字符“引”起来,表示这是一个字符串。字符串 从一个引号开始,到下一个引号结束,也就是引 号需要成对出现。但是若在字符串中间出现引号 ,就会认为字符串已经结束,后面的部分不再是 字符串的一部分,或者组成了新的字符串。这样 就和要实现的目的出现了偏差,会造成编译器在 编译时就不能通过。 下面的示例创建的字符串就是错误的,代码如下 所示。 var str:String=”这是一个错误的字符串,”不 能正确使用”,编译器会报错” 16.3 处理字符串 处理字符串,主要针对字符串的应用进行相关的 处理。本节主要涉及的处理包括字符串的连接、 在字符串中搜索、截取字符串、字符串的大小写 转换等。 16.3.1 字符串连接 在ActionScript 3.0中,有三种方式可以实现字 符串的连接:使用+连接操作符、使用+=自赋值连 接操作符和String.concat()方法。 1+连接符连接字符串 使用+连接符可以连接字符串 2+=自赋值连接符追加字符串 使用+=自赋值连接符可以实现在字符串的尾部追 加字符串。 3String.concat()方法 使用String.concat()方法也可以把指定的字符串 追加到原字符串的后面,并返回一个新的字符串 ,原字符串的值并不发生改变 16.3.2 搜索字符串 在ActionScript 3.0中,实现字符串搜索的方法有两种, 分别为:String.indexOf()方法和String.lastIndexOf() 方法。 1indexOf()方法 indexOf()方法实现从字符串的起始位置开始,正向搜索字 符串,返回搜索到字符串的位置索引。其用法格式如下所 示。 indexOf(str,startIndex) 2lastIndexOf()方法 lastIndexOf()方法实现从字符串的尾部位置开始,逆向搜 索字符串,返回搜索到字符串的位置索引。其用法格式如 下所示。 lastIndexOf(str,startIndex) 16.3.3 删除或者替换字符串 在ActionScript 3.0中提供了对字符串进行查找 并替换的方法replace()。replace()方法能够实 现用一个新的字符串替换原有字符串中指定的字 符串,若查找的字符串不存在,则不替换。其用 法格式如下所示。 replace(str1,str2) 说明:此方法将返回一个新的字符串,原始字符 串仍保持不变,没有修改。 参数说明如下: str1:要查找的字符串。 str2:用于替换的字符串。 16.3.4 截取字符串 在ActionScript 3.0中,提供了三种方法实现在字符串中截取出一部分作 为子字符串,分别为:substring()方法、substr()方法和slice()方法。 这三种方法都能实现从原始字符串中截取一部分字符串而不影响原字符串 的值,区别在于截取的方法不同,方法的参数不同。 1substring()方法:substring()方法根据指定的起始位置和结束位置, 截取两个位置索引中间的一部分字符串作为子字符串。其用法格式如下所 示。 substring(startIndex,endIndex) 2substr()方法:substr()方法根据指定的位置和截取的长度值来截取字 符串。其用法格式如下所示。 substr(startIndex,len) 3slice()方法:此方法与substring()方法类似,也是根据指定的起始位 置和结束位置,截取两个位置索引中间的一部分字符串作为子字符串。其 用法格式如下所示。 slice(startIndex,endIndex) 16.3.5 字符串转数组 使用split()方法实现将字符串分隔成为数组,但要求字符 串中必须有统一的分隔符。比如:逗号,号,号等等 。 其用法格式如下所示。 split(str,limit) 此方法将返回一个新的数组。 参数说明如下: str:用来作为分隔符的字符串,可以是标点符号,也可以 是空格,也可以是其它的字符。如果没有设置分隔符,则 把整个字符串作为数组的一个元素。 limit:要放入数组中的最大项数。默认为允许的最大值。 16.3.6 大小写转换 在ActionScript 3.0中,提供了字母大小写转换的方法,分别为: toUpperCase()方法和toLowerCase()方法。 toUpperCase()方法实现将字符串中的小写字母转换为大写字母,并返回 一个新的字符串。 toLowerCase()方法实现将字符串中的大写字母转换为小写字母,并返回 一个新的字符串。 下面的示例使用这两种方法实现字母的大小写转换,代码如下所示。 /创建一个字符串 var str:String=“This is my Book“ trace(str)/输出:This is my Book /字符串转大写 var str1:String=str.toUpperCase() trace(str1)/输出:THIS IS MY BOOK trace(str)/输出:This is my Book /字符串转小写 var str2:String=str.toLowerCase() trace(str2)/输出:this is my book trace(str)/输出:This is my Book 第17章 正则表达式 在ActionScript 3.0中引入了强大的字符串处理 工具正则表达式。正则表达式主要用于验证 文本字段的值是否符合特定模式,比如验证用户 输入的电话号码位数是否正确;或者替换与特定 模式匹配的部分文本值。 本章将介绍正则表达式是什么,怎么使用,并介 绍一些常见的正则表达式的写法。 17.1 正则表达式概述 正则表达式常常被错误的认为是只有少数人理解 的一种神秘语言。的确,表面上正则表达式看起 来杂乱无章,如果不了解相关的语法知识,那么 代码在就像一堆杂乱无章的字符堆积而已。事实 上,正则表达式是非常简单并且可以被理解的。 通过本节的学习,你将了解正则表达式的基本概 念和基本构成,对正则表达式有一个基本的认识 。 17.1.1 什么是正则表达式 正则表达式最早是由数学家Stephen Kleene在对自然语言 的递增研究成果的基础上,于1956提出来的。具有完整语 法的正则表达式,主要使用在字符串的格式的匹配方面上 ,后来也逐渐应用到信息技术领域。不同的编程语言对于 正则表达式有细微的不同,ActionScript 3.0是按照 ECMAScript第3版语言规范(ECMA-262)中的定义实现正则表 达式。 熟悉windows操作系统读者,应该知道windows中是怎样查 找文件的。不错,使用通配符“*”用来匹配任意字符,“ ?”用来匹配一个字符,来实现搜索功能的。比如使用 text?.txt来搜索的话,可以找到: 17.1.2 一个简单的正则表达式实例 看一段正则表达式的代码可能觉得很复杂,实际上如果明 白其规律,则就很容易理解了。 下面先来看一段简单的字符串查找替换的正则表达式示例 ,实现从一段文字中查找文字“正则表达式”,并把它替 换成“regEXP”,代码如下所示: var str:String= “字符串查找替换的正则表达式示例,实 现从一段文字中查找文字正则表达式,并把它替换成 regEXP“; var pattern:RegExp = /正则表达式/; var repstr=“regEXP“ trace(str.replace(pattern,repstr);/ 输出:字符串 查找替换的regEXP示例,实现从一段文字中查找文字正则 表达式,并把它替换成regEXP 17.1.3 正则表达式的构成 正则表达式一般由两个部分组成。一部分是在双斜杠内部 的字符串,称为匹配模式,用来表示要匹配的字符串的特 征;另一部分是在第二个斜杠的后面,是一个字母,叫做 正则表达式的标志位,由五个字母组合而成,具体请参见 17.2.5节。 匹配模式由两部分组成,分别为:普通字符(例如字符a到 z)和特殊字符(称为元字符)。正则表达式描述在查找字 符串时待匹配的一个或多个字符串。正则表达式作为一个 模板,将某个字符模式与所搜索的字符串进行匹配。 正则表达式的定义方法有两种,一种是上例中的方法,使 用双斜杠来定义,语法格式如下所示: var 正则表达式:RegExp=/匹配模式/标志位 17.2 正则表达式的语法 ActionScript 3.0中的正则表达式是按照 ECMAScript第3版语言规范(ECMA-262)中语言规范 的定义的。在实际应用过程中,正则表达式都

温馨提示

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

评论

0/150

提交评论