AS30零基础升级教材.docx
- 文档编号:10849394
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:88
- 大小:284.33KB
AS30零基础升级教材.docx
《AS30零基础升级教材.docx》由会员分享,可在线阅读,更多相关《AS30零基础升级教材.docx(88页珍藏版)》请在冰豆网上搜索。
AS30零基础升级教材
ActionScript3.0快速入门
下面是内容的大概目录:
一下内容将详细讲解:
章节
描述
第1-4章,ActionScript编程概述
讨论ActionScript3.0核心概念,其中包括语言语法、语句和运算符、ECMAScript第4版语言规范草案、面向对象的ActionScript编程以及管理Adobe®Flash®Player9显示列表中的显示对象的新方法。
第5-10章,ActionScript3.0核心数据类型和类
介绍ActionScript3.0中的顶级数据类型(也是ECMAScript规范草案的一部分)。
第11-26章,FlashPlayerAPI
介绍在特定于AdobeFlashPlayer9的包和类中实现的重要功能,其中包括事件处理、网络和通信、文件输入和输出、外部接口、应用程序安全模型等。
关于ActionScript
ActionScript是由FlashPlayer中的ActionScript虚拟机(AVM)来执行的。
ActionScript代码通常被编译器编译成"字节码格式"(一种由计算机编写且能够为计算机所理解的编程语言),如AdobeFlashCS3Professional或Adobe®Flex™Builder™的内置编译器或Adobe®Flex™SDK和Flex™DataServices中提供的编译器。
字节码嵌入SWF文件中,SWF文件由运行时环境FlashPlayer执行。
ActionScript3.0中的一些主要功能包括:
∙一个新增的ActionScript虚拟机,称为AVM2,它使用全新的字节码指令集,可使性能显著提高。
∙一个更为先进的编译器代码库,它更为严格地遵循ECMAScript(ECMA262)标准,并且相对于早期的编译器版本,可执行更深入的优化。
∙一个扩展并改进的应用程序编程接口(API),拥有对对象的低级控制和真正意义上的面向对象的模型。
∙一种基于即将发布的ECMAScript(ECMA-262)第4版草案语言规范的核心语言。
∙一个基于ECMAScriptforXML(E4X)规范(ECMA-357第2版)的XMLAPI。
E4X是ECMAScript的一种语言扩展,它将XML添加为语言的本机数据类型。
∙一个基于文档对象模型(DOM)第3级事件规范的事件模型。
编程基础
计算机程序主要包括两个方面:
一、程序是计算机执行的一系列指令或步骤。
二、每一步最终都涉及到对某一段信息或数据的处理。
通常认为,计算机程序只是您提供给计算机并让它逐步执行的指令列表。
每个单独的指令都称为"语句"。
在ActionScript中编写的每个语句的末尾都有一个分号。
实质上,程序中给定指令所做的全部操作就是处理存储在计算机内存中的一些数据位。
变量和常量
"变量"是一个名称,它代表计算机内存中的值。
在编写语句来处理值时,编写变量名来代替值;只要计算机看到程序中的变量名,就会查看自己的内存并使用在内存中找到的值。
在ActionScript3.0中,一个变量实际上包含三个不同部分:
∙变量名计算机将名称用作值的占位符。
∙可以存储在变量中的数据的类型
∙存储在计算机内存中的实际值
在ActionScript中,要创建一个变量(称为"声明"变量),应使用var语句。
在AdobeFlashCS3Professional中,还包含另外一种变量声明方法。
在将一个影片剪辑元件、按钮元件或文本字段放置在舞台上时,可以在"属性"检查器中为它指定一个实例名称。
在后台,Flash将创建一个与该实例名称同名的变量,您可以在ActionScript代码中使用该变量来引用该舞台项目。
数据类型
在ActionScript中,您可以将很多数据类型用作所创建的变量的数据类型。
其中的某些数据类型可以看作是"简单"或"基本"数据类型:
∙String:
一个文本值
∙Numeric:
对于numeric型数据,ActionScript3.0包含三种特定的数据类型:
oNumber:
任何数值,包括有小数部分或没有小数部分的值
oInt:
一个整数(不带小数部分的整数)
oUint:
一个"无符号"整数,即不能为负数的整数
∙Boolean:
一个true或false值
简单数据类型表示单条信息。
然而,ActionScript中定义的大部分数据类型都可以被描述为复杂数据类型,因为它们表示组合在一起的一组值。
大部分内置数据类型以及程序员定义的数据类型都是复杂数据类型。
您可能认识下面的一些复杂数据类型:
∙MovieClip:
影片剪辑元件
∙TextField:
动态文本字段或输入文本字段
∙SimpleButton:
按钮元件
∙Date:
有关时间中的某个片刻的信息(日期和时间)
经常用作数据类型的同义词的两个词是类和对象。
"类"仅仅是数据类型的定义─就像用于该数据类型的所有对象的模板,而"对象"仅仅是类的一个实际的实例。
下面几条陈述虽然表达的方式不同,但意思是相同的:
∙变量myVariable的数据类型是Number。
∙变量myVariable是一个Number实例。
∙变量myVariable是一个Number对象。
∙变量myVariable是Number类的一个实例。
处理对象
在面向对象的编程中,程序指令被划分到不同的对象中─代码构成功能块,因此相关类型的功能或相关的信息被组合到一个容器(即类)中。
在ActionScript面向对象的编程中,任何类都可以包含三种类型的特性:
属性、方法、事件。
属性表示某个对象中绑定在一起的若干数据块中的一个。
您可以像处理单个变量那样处理属性;事实上,可以将属性视为包含在对象中的"子"变量。
将变量用作对象的名称,后跟一个句点(.)和属性名。
句点称为"点运算符",用于指示您要访问对象的某个子元素。
整个结构"变量名-点-属性名"的使用类似于单个变量,变量是计算机内存中的单个值的名称。
方法是指可以由对象执行的操作。
可以通过依次写下对象名(变量)、句点、方法名和小括号来访问方法,这与属性类似。
小括号是指示要"调用"某个方法的方式。
有时,为了传递执行动作所需的额外信息,将值(或变量)放入小括号中。
这些值称为方法"参数"。
与属性(和变量)不同的是,方法不能用作值占位符。
然而,一些方法可以执行计算并返回可以像变量一样使用的结果。
事件事件是确定计算机执行哪些指令以及何时执行的机制。
本质上,"事件"就是所发生的、ActionScript能够识别并可响应的事情。
基本事件处理
指定为响应特定事件而应执行的某些动作的技术称为"事件处理"。
在编写执行事件处理的ActionScript代码时,您需要识别三个重要元素:
∙事件源:
发生该事件的是哪个对象?
事件源也称为"事件目标",因为FlashPlayer将此
对象(实际在其中发生事件)作为事件的目标。
∙事件:
将要发生什么事情,以及您希望响应什么事情?
识别事件是非常重要的,因为许多
对象都会触发多个事件。
∙响应:
当事件发生时,您希望执行哪些步骤?
无论何时编写处理事件的ActionScript代码,都会包括这三个元素,并且代码将遵循以下基本结构(以粗体显示的元素是您将针对具体情况填写的占位符):
functioneventResponse(eventObject:
EventType):
void
{
//此处是为响应事件而执行的动作。
}
eventSource.addEventListener(EventType.EVENT_NAME,eventResponse);
此代码执行两个操作。
首先,定义一个函数,这是指定为响应事件而要执行的动作的方法。
接下来,调用源对象的addEventListener()方法,实际上就是为指定事件"订阅"该函数,以便当该事件发生时,执行该函数的动作。
"函数"提供一种将若干个动作组合在一起、用类似于快捷名称的单个名称来执行这些动作的方法。
函数与方法完全相同,只是不必与特定类关联(事实上,方法可以被定义为与特定类关联的函数)。
在创建事件处理函数时,必须选择函数名称(本例中为eventResponse),还必须指定一个参数(本例中的名称为eventObject)。
指定函数参数类似于声明变量,所以还必须指明参数的数据类型。
将为每个事件定义一个ActionScript类,并且为函数参数指定的数据类型始终是与要响应的特定事件关联的类。
(即此处的这个类的事件特性中必须包含要您希望要响应的事件。
)最后,在左大括号与右大括号之间({...}),编写您希望计算机在事件发生时执行的指令。
一旦编写了事件处理函数,就需要通知事件源对象(发生事件的对象)您希望在该事件发生时调用函数。
可通过调用该对象的addEventListener()方法来实现此目的(所有具有事件的对象都同时具有addEventListener()方法)。
addEventListener()方法有两个参数:
∙第一个参数是您希望响应的特定事件的名称。
同样,每个事件都与一个特定类关联,而该类将为每个事件预定义一个特殊值;类似于事件自己的唯一名称(应将其用于第一个参数)。
∙第二个参数是事件响应函数的名称。
请注意,如果将函数名称作为参数进行传递,则在写入函数名称时不使用括号。
了解事件处理过程
下面分步描述了创建事件侦听器时执行的过程。
在本例中,您将创建一个侦听器函数,在单击名为myButton的对象时将调用该函数。
程序员实际编写的代码如下所示:
functioneventResponse(event:
MouseEvent):
void
{
//Actionsperformedinresponsetotheeventgohere.
}
myButton.addEventListener(MouseEvent.CLICK,eventResponse);
下面是此代码在FlashPlayer中运行时的实际工作方式:
1.加载SWF文件时,FlashPlayer会注意到以下情况:
有一个名为eventResponse()的函数。
2.FlashPlayer随后运行该代码(具体地说,是指不在函数中的代码行)。
在本例中,只有一行代码:
针对事件源对象(名为myButton)调用addEventListener()方法,并将eventResponse函数作为参数进行传递。
1.在内部,myButton包含正在侦听其每个事件的函数的列表,因此,当调用其addEventListener()方法时,myButton将eventResponse()函数存储在其事件侦听器列表中。
3.在某一时刻,用户单击myButton对象以触发其click事件(在代码中将其标识为MouseEvent.CLICK)。
此时发生了以下事件:
1.FlashPlayer创建一个对象,它是与所述事件(本示例中为MouseEvent)关联的类的实例。
对于很多事件,这是Event类的实例;对于鼠标事件,这是MouseEvent实例;对于其它事件,这是与该事件关联的类的实例。
创建的该对象称为"事件对象",它包含有关所发生的事件的特定信息:
事件类型、发生位置以及其它特定于事件的信息(如果适用)。
2.FlashPlayer随后查看myButton存储的事件侦听器的列表。
它逐个查看这些函数,以调用每个函数并将事件对象作为参数传递给该函数。
由于eventResponse()函数是myButton的侦听器之一,因此,FlashPlayer将在此过程中调用eventResponse()函数。
3.当调用eventResponse()函数时,将运行该函数中的代码,因此,将执行您指定的动作。
创建对象实例
在ActionScript中使用对象之前,该对象首先必须存在。
创建对象的步骤之一是声明变量;然而,声明变量仅仅是在计算机的内存中创建一个空位置。
您必须为变量指定实际值─即创建一个对象并将它存储在该变量中─然后再尝试使用或处理该变量。
创建对象的过程称为对象"实例化";也就是说,创建特定类的实例。
有一种创建对象实例的简单方法完全不必涉及ActionScript。
在Flash中,当将一个影片剪辑元件、按钮元件或文本字段放置在舞台上,并在"属性"检查器中为它指定实例名时,Flash会自动声明一个拥有该实例名的变量、创建一个对象实例并将该对象存储在该变量中。
同样,在AdobeFlexBuilder中,当您以AdobeMacromedia®MXML™创建一个组件(通过用MXML标签进行编码或通过将组件放置在处于设计模式下的编辑器中)并为该组件分配一个ID(在MXML标记中或在Flex属性视图中)时,该ID将成为一个ActionScript变量的名称,并且会创建该组件的一个实例并将它存储在该变量中。
(直观地创建对象。
)
通过几种方法来仅使用ActionScript创建对象实例。
首先,借助几个ActionScript数据类型,可以使用"文本表达式"(直接写入ActionScript代码的值)创建一个实例。
ActionScript为Number、int、uint、String、Boolean、Array、RegExp、XML、Object和Function数据类型定义了文本表达式。
对于其它任何数据类型而言,要创建一个对象实例,应将new运算符与类名一起使用,通常,将使用new运算符创建对象称为"调用类的构造函数"。
"构造函数"是一种特殊方法,在创建类实例的过程中将调用该方法。
请注意,当以此方法创建实例时,请在类名后加上小括号,有时还可以指定参数值─这是在调用方法时另外可执行的两个操作。
甚至对于可使用文本表达式创建实例的数据类型,也可以使用new运算符来创建对象实例。
如果需要创建无可视化表示形式的ActionScript数据类型的一个实例(无法通过将项目放置在Flash舞台上来创建,也无法在FlexBuilderMXML编辑器的设计模式下创建),则只能通过使用new运算符在ActionScript中直接创建对象来实现此目的。
具体到Flash中,new运算符还可用于创建已在库中定义、但没有放在舞台上的影片剪辑元件的实例。
常用编程元素
运算符是用于执行计算的特殊符号(有时候是词)。
注释"代码注释"是一个工具,用于编写计算机应在代码中忽略的文本。
ActionScript包括两种注释:
单行注释:
在一行中的任意位置放置两个斜杠来指定单行注释。
计算机将忽略斜杠后直到该行末尾的所有内容。
多行注释:
多行注释包括一个开始注释标记(/*)、注释内容和一个结束注释标记(*/)。
无论注释跨多少行,计算机都将忽略开始标记与结束标记之间的所有内容。
注释的另一种常见用法是临时禁用一行或多行代码。
流控制就是用于控制执行哪些动作。
ActionScript中提供了几种类型的流控制元素。
∙函数:
函数类似于快捷方式,提供了一种将一系列动作组合到单个名称下的方法,并可用于执行计
算。
函数对于处理事件尤为重要,但也可用作组合一系列指令的通用工具。
∙循环:
使用循环结构,可指定计算机反复执行一组指令,直到达到设定的次数或某些条件改变为止。
通常借助循环并使用一个其值在计算机每执行完一次循环后就改变的变量来处理几个相关项。
∙条件语句:
条件语句提供一种方法,用于指定仅在某些情况下才执行的某些指令或针对不同的条件
提供不同的指令集。
最常见的一类条件语句是if语句。
if语句检查该语句括号中的值或表达式。
如果值为true,则执行大括号中的代码行;否则,将忽略它们。
使用ActionScript构建应用程序
您可以使用ActionScript3.0代码来实现任何目的,从简单的图形动画到复杂的客户端─服务器事务处理系统都可以通过它来实现。
将代码存储在Flash时间轴中的帧中
在Flash创作环境中,可以向时间轴中的任何帧添加ActionScript代码。
该代码将在影片播放期间播放头进入该帧时执行。
构建较大的应用程序时,这会容易导致无法跟踪哪些帧包含哪些脚本,应用程序越来越难以维护。
许多开发人员将代码仅仅放在时间轴的第1帧中,或放在Flash文档中的特定图层上,以简化在Flash创作工具中组织其ActionScript代码的工作。
这样,就可以容易地在FlashFLA文件中查找和维护代码。
如果想要以后能够在其它Flash项目中使用您的ActionScript代码,您需要将代码存储在外部ActionScript文件(扩展名为.as的文本文件)中。
将代码存储在ActionScript文件中
可以采用以下两种方式之一来设置ActionScript文件的结构:
•非结构化ActionScript代码:
编写ActionScript代码行(包括语句或函数定义),就好像它们是直接在时间轴脚本、MXML文件等文件中输入的一样。
使用ActionScript中的include语句或AdobeFlexMXML中的 Script>标签,可以访问以此方式编写的ActionScript。 ActionScriptinclude语句会导致在特定位置以及脚本中的指定范围内插入外部ActionScript文件的内容,就好像它们是直接在那里输入的一样。 在FlexMXML语言中,可使用 Script>标签来指定源属性,从而标识要在应用程序中的该点处加载的外部ActionScript文件。 •ActionScript类定义: 定义一个ActionScript类,包含它的方法和属性。 定义一个类后,您就可以像对任何内置的ActionScript类所做的那样,通过创建该类的一个实例并使用它的属性、方法和事件来访问该类中的ActionScript代码。 这要求做到下面两点: •使用import语句来指定该类的全名,以便ActionScript编译器知道可以在哪里找到它。 此规则的唯一例外是,如果在代码中引用的类为顶级类,没有在包中定义,则必须导入该类。 在Flash中,将自动为附加到时间轴上的帧的脚本导入内置类(在flash.*包中)。 但是,如果您编写自己的类、处理Flash创作组件(fl.*包)或在Flex中工作,则需要显式地导入任何类以编写用于创建该类实例的代码。 •编写明确引用类名的代码(通常声明一个用该类作为其数据类型的变量,并创建该类的一个实例以便存储在该变量中)。 在ActionScript代码中引用其它类名即通知编译器加载该类的定义。 选择合适的工具 Flash创作工具 除了创建图形和动画的功能之外,AdobeFlashCS3Professional还包括处理ActionScript代码(附加到FLA文件中的元素的代码,或仅包含ActionScript代码的外部文件中的代码)的工具。 Flash创作工具最适合于涉及大量的动画或视频的项目,或者您希望自己创建大部分图形资源的项目,尤其适合于用户交互很少或者具有需要ActionScript的功能的项目。 如果您希望在同一个应用程序中既创建可视资源又编写代码,也可能会选择使用Flash创作工具来开发ActionScript项目。 如果您希望使用预置的用户界面组件,但SWF较小或便于设置可视外观是项目的主要考虑因素,那么您也可能会选择使用Flash创作工具。 AdobeFlashCS3Professional包括两个编写ActionScript代码的工具: ∙"动作"面板: 在FLA文件中工作时可用,该面板允许您编写附加到时间轴上的帧的ActionScript代码。 ∙"脚本"窗口: "脚本"窗口是专门用于处理ActionScript(.as)代码文件的文本编辑器。 FlexBuilder AdobeFlexBuilder是创建带有Flex框架的项目的首选工具。 除了可视布局和MXML编辑工具之外,FlexBuilder还包括一个功能完备的ActionScript编辑器,因此可用于创建Flex或仅包含ActionScript的项目。 Flex应用程序具有以下几个优点: 包含一组内容丰富的预置用户界面控件和灵活的动态布局控件,内置了用于处理外部数据源的机制,以及将外部数据链接到用户界面元素。 但由于需要额外的代码来提供这些功能,因此Flex应用程序的SWF文件可能比较大,并且无法像Flash应用程序那样轻松地完全重设外观。 如果希望使用Flex创建功能完善、数据驱动且内容丰富的Internet应用程序,并在一个工具内编辑ActionScript代码,编辑MXML代码,直观地设置应用程序布局,则应使用FlexBuilder。 第三方ActionScript编辑器 由于ActionScript(.as)文件存储为简单的文本文件,因此任何能够编辑纯文本文件的程序都可以用来编写ActionScript文件。 您可以使用任何文本编辑程序来编写MXML文件或ActionScript类。 然后,可以使用FlexSDK(包括Flex框架类和Flex编译器)来基于这些文件创建SWF应用程序(Flex或仅包含ActionScript的应用程序)。 或者,很多开发人员也可以使用第三方ActionScript编辑器来编写ActionScript类,并结合使用Flash创作工具来创建图形内容。 在以下情况下,您可以选择使用第三方ActionScript编辑器: ∙您希望在单独的程序中编写ActionScript代码,而在Flash中设计可视元素。 ∙将某个应用程序用于非ActionScript编程(例如,创建HTML页或以其它编程语言构建应用程序),并希望将该应用程序也用于ActionScript编码。 ∙您希望使用FlexSDK而不用Flash和FlexBuilder来创建仅包含ActionScript的项目或Flex项目。 有一些提供特定于ActionScript的支持的代码编辑器值得注意,其中包括: AdobeDreamweaver®CS3、ASDT、FDT、FlashDevelop、PrimalScript、SE|PY、Xcode(带有ActionScript模板和代码提示文件)。 ActionScript开发过程 ActionScript3.0的应用程序的基本开发过程: 1.设计应用程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AS30 基础 升级 教材