




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章动作脚本编程,在前面章节,向读者介绍了FlashCS3FlashCS3还提供了一个重要的功能:动作脚本编程。也就是说,能够根据用户的选择在屏幕上呈现出不同的动画内容,使动画中的对象具有交互性,从而大大提高Flash作品的娱乐性。本章主要介绍动作脚本的数据类型、语法规则、变量以及运算符等内容。,本章学习目标,动作脚本的概念和特点动作面板动作脚本编程基础,本章导读,9.1关于动作脚本,9.1关于动作脚本,用户可以通过动作脚本语言告诉Flash将要执行的任务,如动态地控制动画的播放,进行各种计算,甚至获取用户的动作等,这样就可以让用户创建具有交互功能的作品。,9.1.1动作脚本的概念,动作脚本语言即ActionScript,简称AS语言。它是通过在动画的关键帧、按钮和影片剪辑实例上添加语句,来控制动画中的对象,实现交互。在前面简单动画中,Flash按顺序播放动画中的场景和帧,而在交互动画中,用户可以使用键盘或鼠标与动画交互。例如,可以单击动画中的按钮,然后跳转到动画中的不同部分开始播放;可以拖动动画中的对象;可以在表单中输入信息等。使用动作脚本可以控制Flash动画中的元素,扩展Flash创作交互动画和网络应用的能力。,9.1.2动作脚本的特点,Flash动作脚本有自己的特点:1根据其特点的语法规则,使用专门的术语。2动作脚本遵行逻辑顺序执行FlashCS3执行动作脚本语句,从第一句开始,然后按顺序执行,直至到达最后的语句或指令跳转到其他地方的语句。把动作脚本送到某个地方而不是下一条语句的动作有:if、for、while、dowhile、return、gotoAndPlay和gotoAndStop动作。,9.2动作面板,要使用动作脚本编程就要打开【动作】面板,它是Flash提供的专门用来编写脚本,即ActionScript程序的开发环境。相对于以前的版本,FlashCS3【动作】面板的功能得到了扩充和增强,可以选择ActionScript2.0或ActionScript3.0进行编程。【动作】面板是FlashCS3提供的脚本编程专用环境,在开始学习编程之前,首先来详细介绍如何使用【动作】面板。选择【窗口】/【动作】命令,即可打开【动作】面板,如下图所示。,9.3动作脚本编程基础,由于ActionScript是一种完整的脚本语言,它提供了完整的语法规则、丰富的数据类型、运算符、循环语句等。在进行编程前,了解这些编程基础是十分必要的。,9.3.1数据类型,数据类型用于描述一个变量或动作脚本元素可以存储的信息类型。在FlashCS3中有两种数据类型:(1)基本数据类型:主要包括字符串、数值型和布尔型等。基本数据类型都有一个不变的值,可以保存它们所代表的元素的实际值。(2)指定数据类型:主要包括影片剪辑和对象。指定数据类型的值可以改变,因此它们包含的是对该元素实际值的引用。此外,在FlashCS3中还包含两种特殊的数据类型:空值null和未定义undefined。,1字符串(String)字符串是由数字、字母和和标点符号组成的字符序列。在动作脚本中输入字符串时,需要将其放在单引号或双引号中。字符串是作为字符来处理,而不是作为常量来处理。2数值型数据类型中的数值型数据都是双精度浮点数。用户可以使用算术运算符加(+)、减(-)、乘(*)、除()、取模(%)、自增(+)、自减(-)处理数值,也可以使用预定义的数学对象来操作字符。如可以使用下列的方法来返回数值16的平方根:Math.sqrt(16);,3.布尔型布尔型数值只有两个值true(真)和false(假)。在需要时,动作脚本也可把true和false转换成和。布尔值最常用的方法是与逻辑运算符号结合使用,用于进行比较和控制一个程序脚本的流向。例如,在下面例子中,当变量i和j的值都为true时,转到第10帧开始播放:if(i=true),9.3.2指定数据类型,1.对象对象类型是多个属性的集合,每个属性都是单独的一种数据类型,都有其自身的名称和数值,这些属性可以是普通的数据类型,还可以是对象数据类型。当需要具体指出某个对象或属性时,可以使用“”运算符。如:Date.dynamicDate.myDate上述语句中,myDate是dynamicDate对象的一个属性,同时dynamicDate又是Date的一个属性,通过此语句可以调用myDate属性。2.影片剪辑影片剪辑实例是一个对象,也是一种数据类型,这种数据类型用来对某个动画进行操作和控制。当一个变量被赋予了影片剪辑实例数据类型的对象后,就可以通过影片剪辑实例的方法来控制影片剪辑实例的播放。这在面向对象编程中,经常会用到。,9.3.3动作脚本的语法,1点语法点()语法通常用来指明一个对象的属性或方法。2.大括号大括号“”可以把一段动作脚本语句分割一段程序区。,3圆括号圆括号在动作脚本中的作用非常大:(1)定义一个函数时,需要把参数放到圆括号中:functionadd(a,b)(2)调用函数时,需要把传递的参数放到圆括号中:add(s1,s2);(3)圆括号可以用来改变动作脚本语句的优先级。例如,在下面的语句中,圆括号先使表达式newcolor(this)得到计算,然后创建了一个新的颜色对象:onClipEvent(enterFrame)(newColor(this).setRGB(0 xfffaa0);,4分号在动作脚本语句中,任何一条语句都是以分号结束的。但是如果省略了语句结尾的分号,Flash仍然可以成功地编译该脚本。5大小写字母在动作脚本语言中,只有关键字是严格区分大小写的。对于其余的动作脚本,可以使用大写或小写字母。6注释使用注释是程序开发人员的一个良好习惯。注释在编写脚本程序时具有举足轻重的作用,它可以增强代码的可读性,也为以后修改程序带来方便。,9.3.4变量,1变量的命名规则在Flash中命名一个变量时,必须遵守如下规则:(1)变量名必须是一个合法的标志符。(2)变量名不能是一个关键字或逻辑常量(true或false)。(3)变量名在同一作用范围内必须是唯一的。2变量的赋值在Flash中,不需定义一个变量的数据类型。Flash在给变量赋值时会自动根据所赋值的类型来确定变量的数据类型。例如:i=1;在表达式i=1中,赋值运算符右边的元素是属于数值型,所以i的类型为数值型。如果再一次赋值:x=hello;则会将x的类型改为字符串型。没有赋值的变量的数据类型为undefined(未定义型)。,9.3.5表达式与运算符,表达式是结果为一个块的代码块,他们存在于语句中。一个表达式可能是单个变量或者是一个公式,如下面的例子:10+8;A=b+c+10;Add(a,b);以上这些例子都是有效的表达式,但他们不全是有效的语句。,1.操作符的优先级在同一语句中使用了两个或两个以上运算符时,一些操作符比其他操作符相比具有更高的优先级。例如,乘法总是在加法前执行,因为乘法优先级高于加法优先级,但括号内的项却比乘法优先。动作脚本语言就是严格遵循运算符的优先等级来决定先执行哪个操作。2数值运算符数值运算符也叫算术运算符,包括+、-、*、/、%、+、-7种运算符。3.比较运算符比较运算符用于比较表达式的值,然后返回一个逻辑值true或false。这些运算符主要应用在循环语句和条件语句之中。,4字符串运算符字符串运算符主要是指“+”,其作用是连接两个字符串操作数。5逻辑运算符号逻辑运算符用于比较布尔类型表达式或布尔类型值(true和false),然后再返回一个布尔类型的值。6按位运算符按位运算符在内部处理浮点数,把浮点数当作整数来处理。精确位运算的完成取决于运算符,但所有的位运算都是分别计算浮点数的每个数值,得出一个新的值。,7赋值运算符“=”是赋值运算符,用于给变量指定值,或在一个表达式中同时为多个参数赋值。8等于运算符等于(=)运算符常用于确定两个操作数的值或标志是否相等。这个比较运算会返回一个布尔值。9点运算符和数组访问运算符点运算符()和数组访问运算符()可用来访问任何预定义的或自定义的动作脚本对象属性,包括影片剪辑的属性。点运算符可结合前面讲的点语法来使用。对象名称一般位于点运算符的左侧,其属性或变量名位于点运算符的右侧。属性或变量名不能是字符串或字符串的变量,它必须是一个合法的标志符。,10.4函数,10.4.1时间轴控制函数1goto函数goto函数用于控制影片时间轴中影片的位置,它可以使影片跳转到一个特定的帧编号、帧标记或场景,并从该处停止或开始播放,所以也叫做跳转函数。goto函数包含两个子函数,分别是gotoAndPlay()和gotoAndStop()。gotoAndPlay()是指跳转到指定帧播放;gotoAndStop()是指跳转到指定帧停止。这两个函数的参数是相同的。,2play函数play函数使影片从它的当前位置开始播放。如果影片由于stop动作或gotoAndStop动作而停止,那么用户只能使用play函数启动,才能使影片继续播放。play函数的书写形式为:play();没有参数,但小括号同样要写上,不能省略。以下脚本展示了一个鼠标事件,当单击按钮时,影片在当前位置开始播放:on(release)play();,3stop函数stop函数使得影片停止播放。stop函数的书写形式为:stop()函数和play()函数一样,不带参数,但小括号不能省略。以下脚本展示了一个鼠标事件,当单击按钮时,当前影片停止播放:on(release)stop();,4stopAllSounds函数stopAllSounds函数使当前在FlashPlayer中播放的所有声音停止。此动作不影响影片的视觉效果。stopAllSounds函数的书写形式为stopAllSounds(),不带参数。以下脚本展示了一个鼠标事件,当单击按钮时,当前正在FlashPlayer中播放的声音停止。on(release)stopAllSounds();,10.4.2影片剪辑控制函数,1duplicateMovieClip函数duplicateMovieClip函数用于动态地复制影片剪辑实例。书写格式:duplicateMovieClip(目标,新名称=”,深度);各参数含义如下:目标:要复制的“影片剪辑”实例的目标路径。新名称:复制的“影片剪辑”实例的名称。只需输入名称,而无需输入目录路径。复制的“影片剪辑”实例保持原“影片剪辑”实例的相对路径。深度:深度是一个值,它表示“影片剪辑”实例副本与同一影片加载级别中其它副本的相对堆叠深度。,2getProperty函数getProperty函数用于获取影片剪辑实例的指定属性。书写格式为:getProperty(目标,属性);各参数含义如下:目标:要获取属性的“影片剪辑”实例名。属性:“影片剪辑”实例的一个属性。该函数将返回“影片剪辑”实例的指定属性的值。例如,有影片剪辑实例ball,以下脚本将利用getProperty获取ball的透明度,并通过trace函数在“输出”面板中显示该Alpha值。trace(getProperty(ball,_alpha);,3on函数on函数用于触发动作的鼠标事件或者按键事件。on函数可以捕获当前按钮(button)中的指定事件,并执行相应的程序(statements)。书写格式为:on(参数)程序块;/触发事件后执行的程序块其中“参数”指定了要捕获的事件,具体事件如下:press:当按钮被按下时触发该事件。release:当按钮被释放时触发该事件。releaseOutside:当按钮被按住后鼠标移动到按钮以外并释放时触发该事件。rollOut:当鼠标滑出按钮范围时触发该事件。rollOver:当鼠标滑入按钮范围时触发该事件。dragOut:当按钮被鼠标按下并拖曳出按钮范围时触发该事件。dragOver:当按钮被鼠标按下并拖曳入按钮范围时触发该事件。keyPress(”key”):当参数(key)指定的键盘按键被按下时触发该事件。,4onClipEvent函数onClipEvent函数用于触发特定影片剪辑实例定义的动作。书写格式为:onClipEvent(参数)程序块;/触发事件后执行的程序块其中“参数”是一个称为事件的触发器。当事件发生时,执行事件后面大括号中的语句。具体的参数如下:load:影片剪辑实例一旦被实例化并出现在时间轴上,即启动该动作。unload:从时间轴中删除影片剪辑后,此动作在第1帧中启动。在向受影响的帧附加任何动作之前,先处理与unload影片剪辑事件关联的动作。enterFrame:以影片剪辑帧频不断触发此动作。首先处理与enterFrame剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作。mouseDown:当按下鼠标左键时启动此动作。mouseUp:当释放鼠标左键时启动此动作。keyDown:当按下某个键时启动此动作。使用key.getCode()获取有关最后按下的键的信息。keyUp:当释放某个键时启动此动作。使用key.getCode()获取有关最后按下的键的信息。Data:当在loadVariables()或loadMovie()动作中接收数据时启动此动作。当与loadVariables()动作一起指定时,data事件只在加载最后一个变量时发生一次。,5removeMovieClip函数removeMovieClip函数用于删除指定的影片剪辑。书写格式为:removeMovieClip(目标);其中“目标”主要是指用duplicateMovieClip()创建的影片剪辑实例,或者用MovieClip.attachMovie()或MovieClip.duplicateMovieClip()创建的影片剪辑实例。例如,在下列语句中,单击按钮时,删除用duplicateMovieClip()复制的影片剪辑实例mc_bee1。on(release)removeMovieClip(mc_bee1);,6setProperty函数setProperty函数用于当影片时,更改影片剪辑的属性值。书写格式为:setProperty(目标,属性,值);各参数含义如下:目标:指定要设置其属性的影片剪辑实例名称的路径。属性:指定要设置的属性。值:指定属性的新文本值。,7startDrag函数startDrag函数用于使指定的影片剪辑实例在影片播放过程中可拖动。书写格式为:startDrag(目标,固定,左,顶部,右,底部);各参数含义如下:目标:指定要拖动的影片剪辑的目标路径。固定:一个布尔值,指定可拖动影片剪辑是锁定到鼠标位置中央(true),还是锁定到用户首次单击该影片剪辑的位置上(false)。此参数是可选的。其他四个参数“左”、“顶部”、“右”、“底部”都是相对与影片剪辑父级坐标的值,这些坐标指定该影片剪辑的约束矩形。这些参数也是可选的。,8stopDrag函数stopDrag函数用于停止当前影片剪辑实例的拖动操作。书写格式如下:stopDrag();startDrag是使“目标”影片剪辑实例在影片播放过程中可拖动,而一次只能拖动一个影片剪辑。执行startDrag动作后,影片剪辑实例保持可拖动状态,直到被stopDrag动作明确停止为止,所以这两个函数通常是结合在一起使用的。例如,在如下的语句中,利用startDrag()拖动影片剪辑实例“phone”,然后用stopDrag()停止“phone”的拖动。on(press)startDrag(_root.phone);on(release)stopDrag();,9.4.3浏览器/网络函数,1fscommand函数fscommand函数用于.swf文件与FlashPlayer之间的通讯。还可以通过使用fscommand动作将消息传递给MacromediaDirector,或者传递给VisualBasic、VisualC+和其他可承载ActiveX控件的程序。书写格式为:fscommand(命令,参数);各参数含义如下:命令:一个传递给外部应用程序使用的字符串,或者是一个传递给FlashPlayer的命令。参数:一个传递给外部应用程序用于任何用途的字符串,或者是传递给FlashPlayer的一个变量值。,2getURL函数getURL函数将来自特定“URL”的文档加载到Web浏览器窗口中,或将变量传递到位于所定义“URL”的另一个应用程序。若要测试此动作,确保要加载的文件位于指定的位置。若要使用绝对“URL”(例如:),则需要网络连接。书写格式如下:getURL(url,窗口,方法);各参数含义如下:url:从该处获取文档的URL。窗口:可选参数,指定文档应加载到其中的窗口或HTML框架。可输入特定窗口的名称,或从下面的保留目标名称中选择:_self:指定当前窗口中的当前框架。_blank:指定一个新窗口。_parent:指定当前框架的父级。_top:指定当前窗口中的顶级框架。方法:选择发送变量的方法,有GET和POST两种方法。如果没有变量,则省略此参数。GET方法将变量追加到URL的末尾,该方法用于发送少量变量。POST方法在单独的HTTP标头中发送变量,用于发送长的变量字符串。,3loadMovie函数loadMovie函数是指在播放原始.swf文件的同时将.swf文件或JPEG文件加载到FlashPlayer中。书写格式为:loadMovie(url,目标,方法);各参数含义如下:url:要加载的swf文件或JPEG文件的绝对或相对URL。目标:指向目标影片剪辑的路径。方法:可选参数,为一个证书,指定用于发送变量的HTTP方法。,4unloadMovie函数unloadMovie函数是从FlashPlayer中删除影片剪辑实例。书写格式为:unloadMovie(目标);目标:要删除的影片剪辑的目标路径。例如,在下列语句中,当单击按钮时,卸载主时间轴上的名为“a”的影片剪辑实例。on(release)unloadMovie(a);,5loadVariables函数loadVariables函数用于加载外部文件中的变量值。使用loadVariables函数,可以让Flash从外部装载指定数据文件中的数据,并将数据以变量的方式存储到指定的“影片剪辑”对象中。书写格式为:loadVariables(url,目标,方法);各参数含义如下:url:指定要装载数据文件的URL地址。目标:指定存放数据的“影片剪辑”名称。方法:决定在装载数据文件时发送变量数据的模式。,9.4.4条件/循环语句,1if语句If语句是动作脚本中用来处理根据条件有选择地执行程序代码的语句。书写的格式为:if(条件)statement(s);,2switch语句switch语句是多分支选择语句。如果多个执行路径依赖同一个表达式,则switch语句非常有用。书写格式为:switch(条件)case条件1:/如果“条件”=“条件1”,则执行语句statement(s)statement(s)1;break;/终止statement(s)语句块的执行,跳出本switchcase条件2;statement(s)2;break;defaul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省任丘市2025年上半年公开招聘村务工作者试题含答案分析
- 河北省清苑县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版企业员工薪酬福利管理合同
- 2025年度房地产项目代办手续专项服务与支持合同
- 2025年度豪华车队雇用与品牌推广服务合同范本
- 2025版配电箱进出口贸易合同范本解析
- 2025年度砂石资源开采与运输安全合作协议
- 2025年度土方资源开发与保护合作合同范本
- 2025标准商铺租赁合同附带商业数据分析与市场调研服务
- 2025版劳动法培训与劳动法规解读合同
- 算力中心计算任务优化方案
- 劳务派遣工作知识培训课件
- AutoCAD电气工程制图 课件 项目1 低压配电柜的绘制与识图
- 无人机反制设备原理课件
- 北京市2025年普通高中学业水平等级性考试政治试题(解析版)
- 2025年村干部考试试题(含答案)
- 新华书店招聘面试题库全攻略:行业知识、技能与面试技巧
- 幼儿园2025年度保育员模拟考试试题试题(附答案)
- 软件系统供货、安装进度计划及保证措施
- 火电调试管理办法
- 2025秋季版《形势与政策》全套教学课件
评论
0/150
提交评论