




已阅读5页,还剩614页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 Flex概述,Flex是Adobe公司推出的一系列工具和技术,使开发人员可以开发和部署可升级的富互联网应用程序(RIAs)。Flex提供了一种现代的、基于标准的语言来支持公共模板设计、客户端运行环境、编程模型、开发模型和高级数据服务。富互联网应用程序(RIAs)是指像使用Web一样的简单方式来部署富客户端程序。这种程序具有比HTML更加健壮、反应更加灵敏和互动性更丰富的特点。,1.1 Flex简介,传统的基于HTML的应用程序部署成本低、结构简单、简单易学。很多用户和开发人员于是放弃了现代高性能计算机能带来的用户体验,转而追求数据的快速访问,从而丧失了一些重要的UI功能。 RIA利用相对健壮的客户端描述引擎。RIA的另一个好处是:数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。 Flex是Adobe公司近两年推出的重量级产品与技术。Flex的出现就是为了高效地开发和部署富互联网应用程序。,1.1 Flex简介,Adobe公司对于Flex采取了开源的策略,所以开发者可以在Flex原代码的基础上修改。新版Flex 4中的开发环境已经更名为Flash Builder,而不再是Flex Builder系列。Flex采用事件驱动机制,程序的执行过程严格按照事件发生的时间顺序执行。本节将介绍为读者Flex开发技术的特点、优点和新特性。,1.1.1 Flex的技术特点,Flex可以在企业内部或在 Web 上创建富互联网应用程序(RIA),堪称最完整、最强大的RIA开发解决方案。它使企业能够创建个性化的丰富多媒体应用程序,极大地提高用户的体验,彻底革新人与 Web 的交互关系。 1增强用户体验 2完善的开发环境 3通用的配置环境 4企业级的特征 5消除页面加载 6标准的架构 7与浏览器兼容,1.1.2 Flex SDK 4的新特性,Flex 4较之Flex 3有了许多令人兴奋的新特性。 1新增主题和组件 2增强布局方式 3增强特效和滤镜效果 4新增双向绑定功能 5增强的CSS 6增强的HTML模板 7增强的状态 8增强ASDoc的支持 9运行时共享库 10本地化,1.2 Flash Builder的下载与安装,Flash Builder的安装文件可从Adobe官方主页下载。安装文件版本有Flash Builder 4 Standalone Installer版本和Flash Builder 4 Plugin for Eclipse版本两种。Flash Builder 4 Standalone Installer是独立的开发工具的版本,Flash Builder 4 Plugin for Eclipse是可将Flex 4集成于Eclipse的安装插件。本节介绍Flash Builder 4 Standalone Installer的下载与安装。,1.2.1 安装Flash Builder的系统要求,Flash Builder 4可以安装在Windows操作系统上,也可以安装于Mac OS X操作系统中。安装Flash Builder 4的最低配置如下。 1Windows操作系统最低要求 2Mac OS X操作系统最低要求,1.2.2 下载Flash Builder Beta,(1)浏览器中输入“/”,打开Adobe Flex主页。 (2)单击“Flash Builder 4”图标或者文字链接,进入Flash Builder 4的下载页面。 (3)单击“Download the Flash Builder 4 beta 2 release”链接,进入Flash Builder 4验证页面。 (4)下载Adobe公司的产品需要输入Adobe ID和Password,可以免费注册。注册步骤用户可按网页提示。 (5)单击“Flash Builder 4 Standalone Installer”下的“Download Flash Builder 4 Installer for Windows”链接,开始下载Windows平台版本的Flash Builder 4。,1.2.3 Flash Builder 4 Beta的安装,(1)双击“FlashBuilder.exe”,弹出选择安装语言对话框。 (2)单击“OK”按钮,弹出安装第一步骤“简介”对话框。 (3)单击“下一步”按钮,弹出安装第二步骤“许可协议”对话框。 (4)选择“本人接受许可协议条款”单选框,单击“下一步”按钮,弹出安装第三步骤“选择安装文件夹”对话框。,1.2.3 Flash Builder 4 Beta的安装,(5)在文本框中输入安装路径或是单击“选择”按钮选择安装路径。 (6)单击“安装”按钮。完成安装后自动弹出安装第五步骤“安装完毕”对话框。 (7)单击“完成”按钮,完成安装。,1.2.4 Flash Builder的新特性,1新增工作流模式与Flash Catalyst的支持 2新增网络监控功能 3添加单元测试的支持 4新增ASDoc的支持 5自动生成getter和setter 6自动生成事件处理函数结构 7增强调试器功能 8新增Flash CS4组件开发包 9导入和应用诸多主题 10新增类包浏览器,1.3 Flex基础结构MXML介绍,开发者使用两种语言来写Flex应用程序:MXML和ActionScript。MXML是一种XML标识语言,用于进行组件布局。MXML中的组件包括了可视组件和非可视组件。非外观组件可以是从服务器中读取的数据源或用户组件绑定至服务器中的数据。,1.4 建立第一个Flex 4程序,下面以“Hello World”为第一个例子为读者详细说明如何建立第一个Flex 4程序,步骤如下。 (1)选择“文件”|“新建”|“Flex项目”命令,弹出“新建Flex项目”对话框。 (2)在“项目名”文本框中输入项目名称,“应用程序类型”下拉框选择“Web(runs in Adobe Flash Palyer)”。 (3)在“主应用程序”文本框中输入默认项目启动的文件名,其他可默认。单击“完成”按钮,完成项目的创建。,1.4 建立第一个Flex 4程序,(4)在编辑工作区中单击“Design”按钮,进入设计模式。 (5)从左下角的“组件”列表,选择“控件”子文件夹下的“标签”控件。拖动控件到设计模式工作区。 (6)选择“标签”控件,然后在右下角的属性工作区里设置“标签”控件的属性。 (7)在代码模式下,生成的MXML代码。,1.5 编译与运行第一个Flex 4程序,前面建立了“Hello World”程序,编译与运行程序的步骤如下。 (1)在想要成为程序默认初始页的mxml文件上右击,选择“设置为默认应用程序”。 (2)菜单中选择“运行”|“运行HelloWorld”命令,Flash Builder 4就开始编译与运行程序。 (3)效果如图1-19所示。,1.6 小结,本章对Flex进行了介绍,包括Flex技术特点、新特性和优点。Flex应用程序具有丰富的交互性、操作性和用户体验,能开发出与HTML更强大的网络应用程序。 本章图文并茂地讲解了Flash Builder 4的下载与安装。Flash Builder 4是Flex应用程序开发的利器,能快速、有效地开发Flex应用程序。有关Flash Builder 4的内容将在下一章介绍。 本章最后以“Hello World”为例,为读者详细讲解了Flex应用程序的开发编写及编译运行过程。,第2章 熟悉开发环境Flash Builder 4,“工欲善其事必先利其器”。Flash Builder 4是Adobe公司推出的集成开发环境。Flash Builder 4工作环境是一种具有丰富特征的开发环境,有利于开发者开发Flex和ActionScript应用程序。Flash Builder 4建立在Eclipse这一开源的集成开发环境(IDE)上,用户可使用强大的代码编辑器,可视化设计器,调试工具等来开发Flex应用程序。,2.1 熟悉Flash Builder 4工作区,Flash Builder 4工作区是开发Flex应用程序的工作环境,熟悉工作环境对开发的益处是显而易见的。Flash Builder 4平台是基于Eclipse平台,因此与Eclipse的布局风格异常相似。Flash Builder 4平台的特点是集可视化编辑与代码编辑为一体,用户在Flash Builder 4环境下可方便地切换设计模式和代码模式。,2.1.1 Perspectives(透视),透视是一种布局风格,与任务、编辑器和视图相关联。一旦切换透视,对应的任务、编辑器或视图就可能发生改变。Flash Builder 4包含3种透视:“Flash”透视、“Flash Debug”透视以及“Flash Profile”透视。,2.1.2 Editors(编辑器),1MXML编辑器 2ActionScript编辑器 3CSS编辑器,2.1.3 Views(视图),视图是用以辅助用户管理工程和开发项目。用户通过视图可以较直观地处理一些需求。例如,“包资源管理器”既可以管理工作区中的文件和文件夹,又可以浏览包和类的结构。,2.2 编译与运行Flex 4程序详解,MXML语言和ActionScript语言都是需要编译后才能运行的。Flash Builder 4开发环境中集成了两者的编译器,用户只需选择相应的编译运行命令。 本书在介绍第一个Flex程序“Hello World”程序时,简单地介绍了了如何编译与运行Flex应用程序。事实上编译时可选的参数较多,本节将为读者介绍详细的编译与运行过程。仍以“Hello World”为例,讲解编译与运行过程中的可选参数。,2.3 调试Flex 4程序,程序常包含不可知的逻辑错误,这些错误不属于编译错误,编译器不能检查此类错误。例如,程序中要判断闰年,代码的语法正确但判断的方法是错误的,此时编译器不会报错。使用在调试功能能跟踪代码每一步的执行,从而检查逻辑错误。Flash Builder 4开发环境有强大的调试功能,有利于程序进行代码检查。本节介绍如何调试Flex应用程序,包括添加断点、开始调试、监视变量等。,2.3.1 添加断点,断点的作用是使应用程序在带断点的代码行处中断,从而开始检查代码。同时,用户可使用Flash Builder 4自带的调试工具检测并修复错误。例如,变量视图和表达式视图。在代码编辑器中添加断点的方法很多。 调试器只允许在以下代码的断点处中断。 MXML标签中包含ActionScript事件处理,如。其中“click”是单击处理事件。 ActionScript代码中。可以是MXML文件中的标签下,也可以是ActionScript文件中。 ActionScript文件中的任何代码行。,2.3.2 调试程序,在设置完断点后可选择“运行”|“调试”命令,选择相应的运行配置开始调试。也可单击工具栏上的按钮或快捷键F11开始调试。调试器运行后就会自动进入“Flash Debug”透视。其中比较有用的是调试视图。 在调试程序时常需要监视某些变量的变化,从而发现代码中的错误。变量视图能自动跟踪程序中变量的变化。,2.4 Flex 4项目工程概述,Flex 4现支持创建的项目工程有三类:Flex 项目、ActionScript 项目、和Flex 库项目。不同的工程用于开发不同的项目。Flex 项目工程是普通的RIA工程,主要用于开发互联网应用程序。ActionScript 项目工程主要用于开发ActionScript类库。Flex 库项目用于开发共享库,可以是自定义组件,也可以是ActionScript代码。,2.4.1 Flex 项目,Flex 项目是最基础配置的工程,Flex项目包括两种应用程序类型:Web和Desktop。使用Flex框架、XML、Web services等来开发Flex应用程序。Web应用程序类型是在Flash Builder 4中编译后会将可执行文件(swf文件)放在HTML文件中,最终生成的是Web应用程序。Desktop应用程序类型是在Flash Builder 4中编译后会将文件放在AIR平台中,最终生成的是AIR应用程序。,2.4.2 ActionScript 项目,ActionScript 项目使用的是Flash API,而不是Flex框架。ActionScript 项目没有可视化的表现。也就是说ActionScript应用程序中没有设计模式这样的概念。ActionScript项目编译后也可运行于Flash Player中。,2.4.3 Flex 库项目,Flex库项目用以创建自定义的代码库。代码库可共享于应用程序或是其他开发人员。Flex库项目编译后生成SWC文件。SWC文件包含组件、各种资源和catalog.xml文件。SWC常被用于制作主题和制作应用程序的外观。一个SWC主题可以包括多个CSS文件和全部的图片、动画资源。,2.5 Flash Builder 4常用快捷键,快捷键的作用是使得开发工作更加高效和简单。Flash Builder 4中提供了许多快捷键。用户想要更多的快捷键说明,可选择“帮助”|“键辅助”命令或“Shift+Ctr+L”快捷键查看。,2.6 使用Flex帮助,开发Flex应用程序过程中难免会遇到困难,如对某一组件的某一属性不清楚,此时也查看Flex 帮助。在安装Flash Builder 4后,自动安装了Flex 帮助。用户可选择“帮助”|“帮助内容”命令打开Flex 帮助。 Flex 帮助左下方的图标表示显示全部内容,图标表示显示搜索结果,图标表示显示链接,图标表示显示书签。单击不同的图标会切换至不同的内容。另外,用户可在左上方的“搜索”输入框中输入要搜索的内容。,2.7 小结,Flash Builder 4是功能强大的集成开发环境,能高效地开发Flex应用程序。本章主要介绍了Flash Builder 4的相关基础。内容包括熟悉Flash Builder 4工作区,如何编译运行程序,如何调试程序,不同项目工程的作用、常用快捷键、Flex 帮助的使用等。通过本章的学习,读者会对Flash Builder 4的开发环境会有一个比较清楚的了解。,第3章 ActionScript 3.0基础,ActionScript 3.0是在Flash Player运行环境下的编程语言,是一种面向对象的语言。在Flex工程中,使用ActionScript 3.0语言作为编程语言。应用程序的功能实现全部依赖于ActionScript 3.0。,3.1 ActionScript 3.0概述,ActionScript 3.0是运行于Flash Player运行环境的编程语言,使用新的ActionScript虚拟机AVM 2。AVM 2使用新的二进制指令集,并在性能上有很大改进。同时,ActionScript 3.0使用面向对象模型,扩展和提高了应用程序接口。ActionScript 3.0代码被Flex Builder或Flash中的编译器编译成二进制数据。这种二进制数据被装入SWF文件中,然后运行于Flash Player运行环境中。,3.2 使用ActionScript 3.0,Flex工程中可有两种方式使用ActionScript 3.0代码:一种是在MXML文件的标签下使用ActionScript 3.0代码,另一种是直接在AS文件中编写ActionScript 3.0代码。,3.2.1 在MXML文件中直接编写ActionScript 3.0,在MXML文件中编写ActionScript 3.0代码,只要在MXML文件下插入标签。 在MXML文件中的标签下使用ActionScript 3.0。 在Flex Builder 3的编辑器中输入标签会自动封闭。例如,输入“”后,自动生成封闭区域“”。,3.2.2 在AS文件中编写ActionScript 3.0,ActionScript Class、ActionScript File和ActionScript Interface都属于AS文件。它们三者的文件格式都为AS格式,不同的只是其中的定义有所区别。Flex应用程序中最常使用的AS文件是ActionScript Class,也就类的定义。用户可使用ActionScript Class创建向导来完成创建。,3.2.3 MXML中引用AS文件,MXML文件中若要引用AS文件有两种方式:一种是引用使用标签中的“source”属性。 这种方式可看成是将MXML文件和AS文件分离,从而减小MXML文件的代码,提高重用性。 另外一种方法是引用ActionScript Class(类)。使用这种方法的前提是AS文件中定义的是一个类。,3.3 创建第一个ActionScript 3.0应用程序,用户可以使用Flash、Flex Builder、Dreamweaver等任何文本编辑器编写ActionScript 3.0代码(as格式文件)。 1设计ActionScript 3.0应用程序 2创建HelloWorld工程和Greeter类 3编写Greeter类 4HelloWorld.mxml文件中添加ActionScript 3.0代码 5编译运行程序,3.4 小结,ActionScript 3.0是Flex应用程序中的编程语言,控制Flex应用程序的执行,完成应用程序的各项功能。在Flex工程中使用ActionScript 3.0有两种方法:一种是在MXML文件的标签下,一种是在AS文件中。对于大型应用程序来说,代码与模型的分离能使得程序更简洁。另外,将ActionScript 3.0代码写入AS文件也提高了代码的重用性。可以使用标签中的Source属性来指明引用的AS文件,也可以使用引用类的方法来使用AS类。,第4章 数据类型,程序中使用的各种变量都应预先加以定义,即先定义,后使用。对变量的定义可以包括三个方面:数据类型,存储类型,作用域。 数据类型表示了变量的性质、表示形式、占据存储空间等。在ActionScript 3.0语言中,数据类型可分为:基本数据类型:其值不可以再分解为其他类型。 复杂数据类型:复杂数据类型根据已定义的一个或多个数据类型定义。,4.1 常量与变量,对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。常量和变量可与数据类型结合起来,如整型常量、整型变量、实型常量、实型变量、字符串常量、字符串变量。在程序中常量是可以不经说明而直接引用的,而变量则必须先定义后使用。,4.1.1 直接常量和符号常量,1直接常量 整型常量:12、0、-3; 实型常量:4.6、-1.23; 字符串常量:“adf”、“b”。 2符号常量 符号常量是用标识符代表一个常量。标识符是用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。,4.1.2 变量,程序中其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量定义必须放在变量使用之前。变量名和变量值是两个不同的概念。变量名是指变量的名称,用以区别不同的变量。变量值是指变量中包含的值。,4.1.3 变量赋初值,变量赋初值是指变量定义时就赋值给变量,也称为变量初始化。,4.1.4 局部变量和全局变量,局部变量也称为内部变量,是在函数内作定义说明的变量。其作用域仅限于函数内,离开该函数后再使用这种变量就是非法的。 主调函数中定义的变量也只能在主调函数中使用,不能在其他函数中使用。 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。 允许在不同的函数中使用相同的变量名。 全局变量也称为外部变量,是在函数外部定义的变量。,4.1.5 变量的存储方式,变量的存储方式按是否预先分配内存空间,可分为动态存储方式和静态存储方式。静态存储方式是指在程序运行期间分配固定的存储空间方式。动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间方式。 用户存储空间可以分为3个部分: 程序区 静态存储区 动态存储区 动态存储区存放以下数据: 函数形式参数 自动变量(未加static声明的局部变量),4.1.5 变量的存储方式,函数调用时的现场保护和返回地址 对于以上这些数据,在函数开始调用时分配动态存储空间,函数结束时释放这些空间。 有时用户希望函数中的局部变量的值在函数调用结束后仍保留原值,这时就需要指定局部变量为静态局部变量,使用用关键字static进行声明。,4.2 整型数据,整型数据用以存储整型量,如2、60等。整型数据可以是整型常量,也可以是整型变量。,4.2.1 整型常量,1十进制整型常量 2八进制整型常量 3十六进制整型常量,4.2.2 整型变量,1整型变量的分类 2整型变量的定义 3整型数据的溢出,4.3 实型数据,实型数据用以存储实型量。ActionScript 3.0中实型数据类型只有一种:Number型。实型数据可以是实型常量,也可以是实型变量。,4.3.1 实型常量的表示方法,1十进制形式 2指数形式,4.3.2 实型变量,1实型数据在内存中的存放形式 2实型变量的定义 3实型数据的舍入误差,4.4 字符串数据,字符串数据存储字符串量,包括字符串常量和字符串变量。ActionScript 3.0中字符串数据类型为:String型。,4.4.1 字符串常量,字符串常量是指存储字符串的常量,由一对双引号或单引号封闭的字符串序列。,4.4.2 转义字符,转义字符是一种特殊的字符常量,主要用来表示那些用一般字符不便于表示的控制代码。转义字符以反斜线“开头,后跟一个或几个字符。,4.4.3 字符串变量,字符串变量是指存储字符串的变量。,4.5 各类型数据之间的转换,变量的数据类型是可以转换的。转换的方法有两种,一种是自动转换,一种是强制转换。,4.5.1 自动类型转换,自动转换遵循以下规则: (1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 (2)转换按数据长度增加的方向进行,以保证精度不降低。 (3)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。,4.5.2 强制类型转换,强制类型转换把表达式的运算结果强制转换成某种数据类型。 在使用强制转换时应注意以下问题: (1)括号所处的位置要正确。 (2)无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。,4.6 小结,ActionScript 3.0中的数据类型分为基本数据类型和复杂数据类型。本章详细介绍了整型、实型、字符串型。根据数据是否是变量或常量,基本数据又可分为整型常量、整型变量、实型常量、实型变量、字符串常量、字符串变量。 各数据类型间可进行转换。转换的方式有自动转换和强制转换两种。自动转换由编译器自动完成,强制转换由用户确定转换的方向。,第5章 运算符和表达式,ActionScript 3.0语言中运算符和表达式很多。丰富的运算符和表达式使得ActionScript 3.0语言功能强大。ActionScript 3.0语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约:到底是自左向右进行运算还是自右向左进行运算。这种结合性增加了ActionScript 3.0语言的复杂性。,5.1 ActionScript 3.0运算符简介,ActionScript 3.0语言的运算符可分为以下几类: 算术运算符用于各类数值运算,包括加“+”、减“-”、乘“*”、除“/”、求余“%”、自增“+”、自减“-”,共7种。 关系运算符用于比较运算,包括大于“”、小于“=”、小于等于“”,共6种。,5.1 ActionScript 3.0运算符简介,特殊运算符,如括号“()”,下标“”,取XML属性“”等。 赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,=,=,=)3类,共11种。 条件运算符用于条件求值。运算符为“?:”。 逗号运算符用于把若干表达式组合成一个表达式。运算符为“,”。,5.2 算术运算符和算术表达式,算术运算符是用来进行算术运算的操作符,是ActionScript 3.0中最基本的运算符。使用算术运算符连接的表达式称为算术表达式。,5.2.1 基本的算术运算符,基本的算术运算符包括: 加法运算符“+”:加法运算符为双目运算符,表示两个量相加,具有右结合性。 减法运算符“-”:减法运算符为双目运算符,表示两个量相减运算,具有右结合性。 乘法运算符“*”:乘法运算符为双目运算,表示两个量相乘,具有左结合性。 除法运算符“/”:除法运算符为双目运算,表示两个量相除,具有左结合性。 求余运算符“%”:求余运算符为双目运算,表示两个量相除求余数,具有左结合性。,5.2.2 算术表达式,算术表达式是用算术运算符和括号将运算对象(也称操作数)连接起来的、符合ActionScript 3.0语法规则的式子。,5.2.3 运算符的优先级和结合性,ActionScript 3.0语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。若两个运算符优先级相同,按运算符的结合性所规定的方向处理。 ActionScript 3.0语言中各运算符的结合性有两种:左结合性(自左至右)和右结合性(自右至左)。,5.2.4 自增、自减运算符,自增运算符和自减运算符为单目运算(只对一个变量操作运算),可有以下4种形式。 +i:i自增1后再参与其他运算。 -i:i自减1后再参与其他运算。 i+:i参与运算后,i的值再自增1。 i-:i参与运算后,i的值再自减1。,5.3 关系运算符和关系表达式,关系运算符是用来对两个量之间的关系进行运算的操作符。使用关系运算符连接的表达式称为关系表达式。,5.3.1 关系运算符,在ActionScript 3.0语言中有以下关系运算符: :大于; = :大于或等于; = :等于; != :不等于。,5.3.2 关系表达式,关系表达式使用关系运算符连接其他对象。 由于表达式可以又是关系表达式,就会出现嵌套的情况。 关系表达式的值是真”和“假”,分别用“1”和“0”表示。,5.4 逻辑运算符和逻辑表达式,逻辑运算符是用来进行逻辑运算的操作符,包括与、或、非运算。使用逻辑运算符连接的表达式称为逻辑表达式。,5.4.1 逻辑运算符,ActionScript 3.0语言中提供了三种逻辑运算符: & 与运算 | 或运算 ! 非运算 与运算符“&”和或运算符“|”均为双目运算符,具有左结合性。非运算符“!”为单目运算符,具有右结合性。,5.4.2 逻辑运算的值,逻辑运算的值只有“真”和“假”两种,可用“1”和“0 ”来表示。求值规则如下: 与运算 “&”:参与运算的两个量都为真时,结果才为真,否则为假。 或运算“|”:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。 以下代码说明与运算规则。 非运算“!”:参与运算的量为真时,结果为假;参与运算量为假时,结果为真。,5.4.3 逻辑表达式,使用逻辑运算符连接式子就得到逻辑表达式。 其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。,5.5 赋值运算符和赋值表达式,赋值运算符包括简单的赋值运算符“=”和复合赋值运算符,如“+=”、“-=”等。使用赋值运算符连接的表达式称为赋值表达式。,5.5.1 简单赋值运算符和简单赋值表达式,简单赋值运算符为“=”。由“= ”连接的式子称为赋值表达式。 赋值运算符“=”具有右结合性。,5.5.2 复合赋值运算符和复合赋值表达式,在赋值符“=”之前加上其他二目运算符可构成复合赋值符,如“+=”、“-=”、“*=”、“=”、“%=”、“=”、“&=”、“=”、“|=”。,5.6 逗号运算符和逗号表达式,在ActionScript 3.0语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。 逗号表达式可以嵌套,即表达式1或表达式2又是逗号表达式。 整个逗号表达式的值等于表达式n的值。并不是在所有出现逗号的地方都组成逗号表达式。,5.7 位运算符,位运算指对二进制数的位进行运算。 ActionScript 3.0语言提供了6种位运算符: & :按位与; | :按位或; :按位异或; :取反; :右移。,5.7 位运算符,1按位与运算 2按位或运算 3按位异或运算 4求反运算 5左移运算 6右移运算,5.8 小结,ActionScript 3.0中定义了许多运算符,这使得ActionScript 3.0语言具有强大的运算能力。运算表达式是由运算符连接起来的式子,其运算方式及结果与运算符的特性紧密相关。 本章主要介绍了算术运算符、关系运算符、逻辑运算符、赋值运算符和位运算符。算术运算符中详细介绍了各种基本的算术运算符、逗号表达式及自增、自减运算符。关系运算符用以比较两个量之间的关系。逻辑运算符中包括与、或、非运算符。赋值运算符包括简单的赋值运算符“=”和复合赋值运算符。位运算符中介绍了6种位运算符的特点及使用方法。,第6章 程序设计的基本结构,从程序流程的角度来看,程序可以分为三种基本结构:顺序结构、分支结构和循环结构。这3种基本结构可以组成所有的各种复杂程序。程序设计的基本组成部分是语句,不同语句组成不同的程序结构。例如,for语句、while语句组成循环结构程序。,6.1 顺序结构程序设计,顺序结构程序是指程序中的语句由表达式语句、函数调用语句、控制语句、复合语句、空语句或赋值语句构成。顺序结构是程序中最基本的结构之一,最大的特点是程序是以从上至下的顺序执行。,6.1.1 表达式语句,表达式语句是最基本的语句,由表达式加上分号“;”组成。,6.1.2 函数调用语句,由函数名、实际参数加上分号“;”组成。 执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值(在后面函数中再详细介绍)。,6.1.3 复合语句,把多个语句用括号括起来组成的一个语句称复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。 复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加分号。,6.1.4 空语句,只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。,6.1.5 赋值语句,赋值语句是由赋值表达式再加上分号“;”构成。 赋值语句的功能和特点都与赋值表达式相同。它是程序中使用最多的语句之一。在赋值语句的使用中需要注意以下几点: 1表达式嵌套 2变量赋初值与赋值语句的区别 3赋值表达式与赋值语句的区别,6.2 分支结构程序设计,分支结构程序是指程序中存在分支的逻辑,需要分别处理各分支的逻辑。分支结构程序常用的语句有:if语句、ifelse语句、ifelseif语句、switch语句。分支结构是程序中最基本的结构之一,最大的特点是程序是分支处理。,6.2.1 if语句,if语句语义是:如果表达式的值为真,则执行其后的语句。否则不执行该语句。 以下代码使用if语句实现取最大值。,6.2.2 if-else语句,if-else语句语义是:如果表达式的值为真,则执行语句1,否则执行语句2。,6.2.3 if-else-if语句,在使用if语句中还应注意以下问题。 1表达式形式的多样性 2if语句格式 3if语句中使用复合语句,6.2.4 if语句的嵌套,当if语句中的执行语句又是if语句时,就构成了if 语句嵌套的情形。 在嵌套内的if语句可能又是if-else语句,这将会出现多个if关键字和多个else关键字的情况,这时要特别注意if和else的配对问题。,6.2.5 switch语句,ActionScript 3.0语言还提供了另一种用于多分支选择的语句:switch语句。 switch语句的意思是:计算表达式的值,并逐个与其后的常量表达式值相比较。当表达式的值与某个常量表达式的值相等时,即执行其后的语句。然后不再进行判断,继续执行后面所有case后的语句。若表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。,6.3 循环结构程序设计,循环结构是程序中一种很重要的结构。其特点是:在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体 用goto语句和if语句构成循环。 while语句。 do-while语句。 for语句。,6.3.1 goto语句,goto语句是一种无条件转移语句。 goto语句一般不用,因为它将使程序层次不清,且程序不易读。但在多层嵌套退出时,用goto语句则比较合理。,6.3.2 while语句,while语句中的表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。,6.3.3 do-while语句,do-while语句与while语句的不同在于:do-while语句先执行循环中的语句,然后再判断表达式。,6.3.4 for语句,在ActionScript 3.0语言中,for语句使用最为灵活。它完全可以取代 while 语句。 for语句的执行过程如下。 (1)求解表达式1。 (2)求解表达式2。若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3步。若其值为假(0),则结束循环,转到第5步。 (3)求解表达式3。 (4)转回上面第2步继续执行。,6.3.4 for语句,(5)循环结束,执行for语句下面的一个语句。 1表达式省略 2表达式1的多样性 3使用逗号表达式,6.3.5 循环的嵌套,循环体语句中可以又是循环语句,这样就形成了循环的嵌套。例如,for语句的循环体语句中又包括for语句。层层嵌套的循环在程序中经常见到,但一般嵌套的次数不宜超过5次。因为这样会使程序的可读性和执行效率变差。,6.3.6 几种循环语句的比较,四种循环语句都可以用来处理同一个问题,一般可以互相代替。其中for语句功能最强大,goto语句尽量少使用。 while语句和do-while语句的循环体语句中应包括使循环趋于结束的语句,从而避免死循环。 用while语句和do-while语句时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。,6.3.7 break语句,break语句通常用在循环语句和开关语句中。当break语句用于do-while语句、for语句或while语句中时,可使程序终止循环而执行循环后面的语句。break语句一般总是与if语句联合使用,即满足条件时便跳出循环。 使用break语句应注意的地方包括: break语句对if-else的条件语句不起作用。 在多层循环中,一个break语句只向外跳一层。,6.3.8 continue 语句,continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue语句只用在for语句、while语句或do-while语句中,常与if语句一起使用,用以加速循环。,6.4 小结,与其他大部分程序一样,ActionScript 3.0语言中的基本结构也包括顺序结构、分支结构、循环结构。顺序结构程序由表达式语句、函数调用语句、复合语句、空语句、赋值语句组成,其特点是程序按顺序执行。分支结构程序中有不同的逻辑分支,需要分别处理。分支结构程序可使用if语句、if-else语句、if-else-if语句、switch语句来实现分支处理。循环结构程序中当循环条件成立时,程序执行循环体中的语句,直至循环条件不成立。循环结构程序可使用while语句、do-while语句、for语句来实现循环。其中for语句功能最为强大。break语句和continue语句可分别用于退出循环和加速循环。,第7章 函数,函数是ActionScript 3.0源程序的基本模块,通过对函数模块的调用实现特定的功能。ActionScript 3.0语言不仅提供了极为丰富的库函数,还允许用户建立自己定义的函数。用户可把算法编成一个个相对独立的函数模块,然后通用调用来使用函数。可以说ActionScript 3.0程序的大部分工作都是由各式各样的函数完成的。,7.1 函数概述,1函数定义角度 从函数定义的角度看,函数可分为库函数和用户定义函数。 库函数是指由ActionScript 3.0定义的函数。用户无须定义,只需在程序中直接使用函数。 用户定义函数是指由用户按需要自定义的函数。 2函数返回值角度 有返回值函数:此类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。,7.1 函数概述,无返回值函数:此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。 3函数数据传送角度 无参函数:函数定义、函数说明及函数调用中均不带参数。 有参函数:也称为带参函数。在函数定义及函数说明时都有参数,称为形式参数(简称为形参)。,7.2 函数定义的一般形式,函数按是否带参数可分为无参函数和有参函数。因此函数定义的形式也分无参函数和有参函数两种。两者的定义差别只在于参数定义部分。,7.2.1 无参函数的定义形式,无参函数是指不带有参数的函数,通常用于一些简单的处理。 类型标识符指明了本函数的类型。 函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。 “”中的内容称为函数体。,7.2.2 有参函数的定义形式,有参函数是指带有参数的函数。在ActionScript 3.0中这种函数最为常见。,7.3 函数的参数和函数的返回值,函数的参数和函数的返回值是函数定义的最重要组成部分。函数的参数决定了主调函数应传递哪些量给被调函数。函数的返回值决定了被调函数的返回类型和主调函数的值。,7.3.1 形式参数和实际参数,函数的形参和实参具有以下特点: 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。 实参可以是常量、变量、表达式、函数等。 实参和形参在数量上、类型上、顺序上应严格一致,否则会发生类型不匹配的错误。 函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。,7.3.2 函数的返回值,1return语句返回函数值 2返回值类型一致 3返回空类型,7.4 函数的调用,函数在定义后可在多处调用。函数调用的方法是使用函数名,所以在同文件中函数名不能相同。,7.4.1 函数调用的一般形式,ActionScript 3.0语言中, 实际参数表中的参数可以是常数、变量、其他构造类型数据或表达式。各实参之间用逗号分隔。,7.4.2 函数调用的方式,在ActionScript 3.0语言中,可以用以下几种方式调用函数。 函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。 函数语句:函数调用的一般形式加上分号即构成函数语句。 函数实参:函数作为另一个函数调用的实际参数出现。,7.5 函数的嵌套调用,ActionScript 3.0语言允许在一个函数的定义中出现对另一个函数的调用,这样就形成了函数的嵌套调用,即在被调函数中又调用其他函数。,7.6 函数的递归调用,一个函数在它的函数体内调用它自身称为递归调用。ActionScript 3.0语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。,7.7 数组作为函数参数,数组可以作为函数的参数使用,进行数据传送。数组用作函数参数有两种形式:一种是把数组元素作为实参使用,另一种是把数组名作为函数的形参和实参使用。,7.7.1 数组元素作为函数实参,数组元素也称下标变量,是数组中的某一项值。因此使用数组元素作为函数参数与使用普通变量作为函数参数并无区别。只是在发生函数调用时,把数组元素作为函数的实参传递给形参。,7.7.2 数组名作为函数参数,以数组名作为函数参数是指将数组的首地址作为参数传递给形参。函数形参根据数组的首地址就能在内存中找到数组的存储空间。用数组名作函数参数时,要求形参和相对应的实参都必须是类型相同的数组。,7.8 小结,函数是ActionScript 3.0语言中的重要组成部分。函数根据是否带参分为无参函数和有参函数。函数的参数分为实参和形参两种。其中,实参是指主调函数中的参数,形参是指被调函数中的参数。实参和形参在内存空间里是两个完全不同的量,因此即使实参与形参定义了相同的名称也不会相互影响。,第8章 面向对象基础,客观世界中任何一个事物都可以看成一个对象。客观世界是由千千万万个对象组成,对象间通过一定的渠道相互联系。从计算机的角度看,一个对象应该包括两个要素:数据和操作。对象就是一个包含数据以及与这,8.1 类和对象,客观世界中每一个实体都是对象。在ActionScript 3.0中对象的类型称为类(class)。类代表了某一对象的共性和特征。可以说类是对象的抽象,而对象是类的具体实例。在ActionScript 3.0中先声明一个类,然后用类去定义若干个同类型的对象。用户可将类看成是一种数据类型,对象是这种数据类型的变量。,8.1.1 类的定义形式,在ActionScript 3.0中定义一个类就是要定义类的成员都数据和成员函数。,8.1.2 类的成员类型,类的成员类型包括三大类:一类是私有(private),即外界不能调用。一类是公有(public),即外界可以调用。一类是受保护(protected),此内容将在后面小节中介绍。,8.1.3 调用类中的成员,类中的成员只有指明类型为public后,外界才能调用。外界可以调用类中的公有成员数据和公有成员函数。在调用类的成员之前需要实例化类,即创建类的对象。因为类中成员只有在创建类的对象时,才会在内存中分配空间。,8.2 构造函数和析构函数,类定义中一般都有两个基本的成员函数:构造函数和析构函数。构造函数一般用于在类对象创建时初始化成员数据。析构函数一般用于在类对象清除时释放成员所占的内存空间。在ActionScript 3.0的类定义中构造函数和析构函数都可缺省,但语言中有默认的、不可见的构造函数和析构函数。 在类定义中构造函数还是非常常用的,因为用户经常需要初始化成员数据,而默认的构造函数不初始化任何成员数据。,8.2.1 构造函数,构造函数用在在类对象创建时执行,一般用于成员数据的初始化。构造函数与其他成员不同,不需要用户发命令来激活它,在创建类的对象时自动执行。构造函数可用户自定义,但构造函数名称与类名必
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论