版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 动作脚本编程在前面章节,向读者介绍了Flash CS3制作动画的基本操作方法。此外,Flash CS3还提供了一个重要的功能:动作脚本编程。也就是说,能够根据用户的选择在屏幕上呈现出不同的动画内容,使动画中的对象具有交互性,从而大大提高Flash作品的娱乐性。本章主要介绍动作脚本的数据类型、语法规则、变量以及运算符等内容。本章学习目标动作脚本的概念和特点动作面板动作脚本编程基础本章导读9.1 关于动作脚本9.1 关于动作脚本用户可以通过动作脚本语言告诉Flash将要执行的任务,如动态地控制动画的播放,进行各种计算,甚至获取用户的动作等,这样就可以让用户创建具有交互功能的作品。9.1.1
2、 动作脚本的概念动作脚本语言即ActionScript,简称AS语言。它是通过在动画的关键帧、按钮和影片剪辑实例上添加语句,来控制动画中的对象,实现交互。在前面简单动画中,Flash按顺序播放动画中的场景和帧,而在交互动画中,用户可以使用键盘或鼠标与动画交互。例如,可以单击动画中的按钮,然后跳转到动画中的不同部分开始播放;可以拖动动画中的对象;可以在表单中输入信息等。使用动作脚本可以控制Flash动画中的元素,扩展Flash创作交互动画和网络应用的能力。9.1.2动作脚本的特点Flash动作脚本有自己的特点 :1根据其特点的语法规则,使用专门的术语。2动作脚本遵行逻辑顺序执行Flash CS3
3、执行动作脚本语句,从第一句开始,然后按顺序执行,直至到达最后的语句或指令跳转到其他地方的语句。把动作脚本送到某个地方而不是下一条语句的动作有:if、for、while、dowhile、return、gotoAndPlay和gotoAndStop动作。9.2动作面板 要使用动作脚本编程就要打开【动作】面板,它是Flash提供的专门用来编写脚本,即ActionScript程序的开发环境。相对于以前的版本,Flash CS3【动作】面板的功能得到了扩充和增强,可以选择ActionScript2.0或ActionScript3.0进行编程。 【动作】面板是Flash CS3提供的脚本编程专用环境,在开
4、始学习编程之前,首先来详细介绍如何使用【动作】面板。 选择【窗口】/【动作】命令,即可打开【动作】面板,如下图所示。 AS版本选择下拉菜单语言工具箱程序添加对象脚本编辑区工具栏9.3 动作脚本编程基础由于ActionScript是一种完整的脚本语言,它提供了完整的语法规则、丰富的数据类型、运算符、循环语句等。在进行编程前,了解这些编程基础是十分必要的。9.3.1 数据类型 数据类型用于描述一个变量或动作脚本元素可以存储的信息类型。在Flash CS3中有两种数据类型:(1)基本数据类型:主要包括字符串、数值型和布尔型等。基本数据类型都有一个不变的值,可以保存它们所代表的元素的实际值。(2)指定
5、数据类型:主要包括影片剪辑和对象。指定数据类型的值可以改变,因此它们包含的是对该元素实际值的引用。 此外,在Flash CS3中还包含两种特殊的数据类型:空值null和未定义undefined。1字符串(String) 字符串是由数字、字母和和标点符号组成的字符序列。在动作脚本中 输入字符串时,需要将其放在单引号或双引号中。字符串是作为字符来处理,而不是作为常量来处理。2数值型 数据类型中的数值型数据都是双精度浮点数。用户可以使用算术运算符加(+)、减(-)、乘(*)、除()、取模(%)、自增(+)、自减(-)处理数值,也可以使用预定义的数学对象来操作字符。如可以使用下列的方法来返回数值16的
6、平方根: Math.sqrt(16);3. 布尔型 布尔型数值只有两个值true(真)和false(假)。在需要时,动作脚本也可把true和false转换成和。布尔值最常用的方法是与逻辑运算符号结合使用,用于进行比较和控制一个程序脚本的流向。例如,在下面例子中,当变量i和j的值都为true时,转到第10帧开始播放: if ( (i= =true)& (j= =false) gotoAndPlay(10); 9.3.2指定数据类型1.对象 对象类型是多个属性的集合,每个属性都是单独的一种数据类型,都有其自身的名称和数值,这些属性可以是普通的数据类型,还可以是对象数据类型。当需要具体指出某个对象或
7、属性时,可以使用“”运算符。如: Date.dynamicDate.myDate 上述语句中,myDate是dynamicDate对象的一个属性,同时dynamicDate又是Date的一个属性,通过此语句可以调用myDate 属性。2.影片剪辑 影片剪辑实例是一个对象,也是一种数据类型,这种数据类型用来对某个动画进行操作和控制。当一个变量被赋予了影片剪辑实例数据类型的对象后,就可以通过影片剪辑实例的方法来控制影片剪辑实例的播放。这在面向对象编程中,经常会用到。9.3.3 动作脚本的语法1点语法 点()语法通常用来指明一个对象的属性或方法。 2. 大括号 大括号“ ”可以把一段动作脚本语句分割
8、一段程序区。 3圆括号 圆括号在动作脚本中的作用非常大:(1)定义一个函数时,需要把参数放到圆括号中: function add(a,b) (2)调用函数时,需要把传递的参数放到圆括号中: add(s1,s2);(3)圆括号可以用来改变动作脚本语句的优先级。例如,在下面的语句中,圆括号先使表达式new color(this)得到计算,然后创建了一个新的颜色对象: onClipEvent(enterFrame) (new Color(this).setRGB(0 xfffaa0); 4分号 在动作脚本语句中,任何一条语句都是以分号结束的。但是如果省略了语句结尾的分号,Flash仍然可以成功地编译
9、该脚本。5大小写字母 在动作脚本语言中,只有关键字是严格区分大小写的。对于其余的动作脚本,可以使用大写或小写字母。6注释 使用注释是程序开发人员的一个良好习惯。注释在编写脚本程序时具有举足轻重的作用,它可以增强代码的可读性,也为以后修改程序带来方便。 9.3.4 变量 1变量的命名规则在Flash中命名一个变量时,必须遵守如下规则:(1)变量名必须是一个合法的标志符。(2)变量名不能是一个关键字或逻辑常量(true或false)。(3)变量名在同一作用范围内必须是唯一的。2变量的赋值 在Flash中,不需定义一个变量的数据类型。Flash在给变量赋值时会自动根据所赋值的类型来确定变量的数据类型
10、。例如:i=1;在表达式i=1中,赋值运算符右边的元素是属于数值型,所以i的类型为数值型。如果再一次赋值:x=hello;则会将x的类型改为字符串型。没有赋值的变量的数据类型为undefined(未定义型)。9.3.5 表达式与运算符 表达式是结果为一个块的代码块,他们存在于语句中。一个表达式可能是单个变量或者是一个公式,如下面的例子: 10+8; A=b+c+10; Add(a,b); 以上这些例子都是有效的表达式,但他们不全是有效的语句。 1. 操作符的优先级 在同一语句中使用了两个或两个以上运算符时,一些操作符比其他操作符相比具有更高的优先级。例如,乘法总是在加法前执行,因为乘法优先级高
11、于加法优先级,但括号内的项却比乘法优先。动作脚本语言就是严格遵循运算符的优先等级来决定先执行哪个操作。2数值运算符 数值运算符也叫算术运算符,包括+、-、*、/、%、 +、- 7种运算符。3. 比较运算符 比较运算符用于比较表达式的值,然后返回一个逻辑值true或false。这些运算符主要应用在循环语句和条件语句之中。 4字符串运算符 字符串运算符主要是指“+”,其作用是连接两个字符串操作数。 5逻辑运算符号 逻辑运算符用于比较布尔类型表达式或布尔类型值(true和false),然后再返回一个布尔类型的值。 6按位运算符 按位运算符在内部处理浮点数,把浮点数当作整数来处理。精确位运算的完成取决
12、于运算符,但所有的位运算都是分别计算浮点数的每个数值,得出一个新的值。7赋值运算符 “=”是赋值运算符,用于给变量指定值,或在一个表达式中同时为多个参数赋值。 8等于运算符 等于(= =)运算符常用于确定两个操作数的值或标志是否相等。这个比较运算会返回一个布尔值。9点运算符和数组访问运算符 点运算符()和数组访问运算符( )可用来访问任何预定义的或自定义的动作脚本对象属性,包括影片剪辑的属性。点运算符可结合前面讲的点语法来使用。对象名称一般位于点运算符的左侧,其属性或变量名位于点运算符的右侧。属性或变量名不能是字符串或字符串的变量,它必须是一个合法的标志符。 10.4 函数10.4.1时间轴控
13、制函数1goto函数 goto函数用于控制影片时间轴中影片的位置,它可以使影片跳转到一个特定的帧编号、帧标记或场景,并从该处停止或开始播放,所以也叫做跳转函数。 goto函数包含两个子函数,分别是gotoAndPlay()和gotoAndStop()。gotoAndPlay()是指跳转到指定帧播放;gotoAndStop()是指跳转到指定帧停止。这两个函数的参数是相同的。 2play函数 play函数使影片从它的当前位置开始播放。如果影片由于stop动作或gotoAndStop动作而停止,那么用户只能使用play函数启动,才能使影片继续播放。 play函数的书写形式为:play();没有参数,
14、但小括号同样要写上,不能省略。 以下脚本展示了一个鼠标事件,当单击按钮时,影片在当前位置开始播放: on(release) play(); 3stop函数 stop函数使得影片停止播放。 stop函数的书写形式为:stop()函数和play()函数一样,不带参数,但小括号不能省略。 以下脚本展示了一个鼠标事件,当单击按钮时,当前影片停止播放: on(release) stop(); 4stopAllSounds函数 stopAllSounds 函数使当前在Flash Player中播放的所有声音停止。此动作不影响影片的视觉效果。 stopAllSounds函数的书写形式为stopAllSoun
15、ds(),不带参数。 以下脚本展示了一个鼠标事件,当单击按钮时,当前正在Flash Player中播放的声音停止。 on(release) stopAllSounds(); 10.4.2影片剪辑控制函数1duplicateMovieClip函数 duplicateMovieClip函数用于动态地复制影片剪辑实例。书写格式: duplicateMovieClip(目标,新名称=”,深度); 各参数含义如下: 目标:要复制的“影片剪辑”实例的目标路径。 新名称:复制的“影片剪辑”实例的名称。只需输入名称,而无需输入目录路径。复制的“影片剪辑”实例保持原“影片剪辑”实例的相对路径。 深度:深度是一个
16、值,它表示“影片剪辑”实例副本与同一影片加载级别中其它副本的相对堆叠深度。 2getProperty函数 getProperty函数用于获取影片剪辑实例的指定属性。书写 格式为: getProperty(目标,属性); 各参数含义如下: 目标:要获取属性的“影片剪辑”实例名。 属性:“影片剪辑”实例的一个属性。 该函数将返回“影片剪辑”实例的指定属性的值。例如,有影片剪辑实例ball,以下脚本将利用getProperty获取ball的透明度,并通过trace函数在“输出”面板中显示该Alpha值。 trace(getProperty(ball,_alpha);3on函数on函数用于触发动作的鼠
17、标事件或者按键事件。on函数可以捕获当前按钮(button)中的指定事件,并执行相应的程序(statements)。书写格式为:on(参数)程序块;/触发事件后执行的程序块其中“参数”指定了要捕获的事件,具体事件如下:press:当按钮被按下时触发该事件。release:当按钮被释放时触发该事件。releaseOutside:当按钮被按住后鼠标移动到按钮以外并释放时触发该事件。rollOut:当鼠标滑出按钮范围时触发该事件。rollOver:当鼠标滑入按钮范围时触发该事件。dragOut:当按钮被鼠标按下并拖曳出按钮范围时触发该事件。dragOver:当按钮被鼠标按下并拖曳入按钮范围时触发该事
18、件。keyPress(”key”):当参数(key)指定的键盘按键被按下时触发该事件。4onClipEvent函数 onClipEvent函数用于触发特定影片剪辑实例定义的动作。书写格式为: onClipEvent(参数)程序块;/触发事件后执行的程序块 其中“参数”是一个称为事件的触发器。当事件发生时,执行事件后面大括号中的语句。具体的参数如下: load:影片剪辑实例一旦被实例化并出现在时间轴上,即启动该动作。 unload:从时间轴中删除影片剪辑后,此动作在第1帧中启动。在向受影响的 帧附加任何动作之前,先处理与unload影片剪辑事件关联的动作。 enterFrame:以影片剪辑帧频不
19、断触发此动作。首先处理与enterFrame剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作。 mouseDown:当按下鼠标左键时启动此动作。 mouseUp:当释放鼠标左键时启动此动作。 keyDown:当按下某个键时启动此动作。使用key.getCode()获取有关最后按下的键的信息。 keyUp:当释放某个键时启动此动作。使用key.getCode()获取有关最后按下的键的信息。 Data:当在loadVariables()或loadMovie()动作中接收数据时启动此动作。当与loadVariables()动作一起指定时,data事件只在加载最后一个变量时发生一次。 5rem
20、oveMovieClip函数 removeMovieClip函数用于删除指定的影片剪辑。书写格式为: removeMovieClip(目标); 其中“目标”主要是指用duplicateMovieClip()创建的影片剪辑实例,或者用MovieClip.attachMovie()或MovieClip.duplicateMovieClip()创建的影片剪辑实例。 例如,在下列语句中,单击按钮时,删除用duplicateMovieClip()复制的影片剪辑实例mc_bee1。 on(release) removeMovieClip(mc_bee1); 6setProperty函数 setProper
21、ty函数用于当影片时,更改影片剪辑的属性值。书写格式为: setProperty(目标,属性,值); 各参数含义如下: 目标:指定要设置其属性的影片剪辑实例名称的 路径。 属性:指定要设置的属性。 值:指定属性的新文本值。7startDrag函数 startDrag函数用于使指定的影片剪辑实例在影片播放过程中可拖动。书写格式为: startDrag(目标,固定,左,顶部,右,底部); 各参数含义如下: 目标:指定要拖动的影片剪辑的目标路径。 固定:一个布尔值,指定可拖动影片剪辑是锁定到鼠标位置中央(true),还是锁定到用户首次单击该影片剪辑的位置上(false)。此参数是可选的。 其他四个参
22、数“左”、“顶部”、“右”、“底部”都是相对与影片剪辑父级坐标的值,这些坐标指定该影片剪辑的约束矩形。这些参数也是可选的。8stopDrag函数 stopDrag函数用于停止当前影片剪辑实例的拖动操作。书写格式如下: stopDrag(); startDrag是使“目标”影片剪辑实例在影片播放过程中可拖动,而一次只能拖动一个影片剪辑。执行startDrag动作后,影片剪辑实例保持可拖动状态,直到被stopDrag动作明确停止为止,所以这两个函数通常是结合在一起使用的。 例如,在如下的语句中,利用startDrag()拖动影片剪辑实例“phone”,然后用stopDrag()停止“phone”的
23、拖动。 on(press) startDrag(_root.phone); on(release) stopDrag(); 9.4.3浏览器/网络函数1fscommand函数 fscommand函数用于.swf文件与Flash Player之间的通讯。还可以通过使用fscommand动作将消息传递给Macromedia Director,或者传递给Visual Basic、Visual C+和其他可承载ActiveX控件的程序。书写格式为: fscommand(命令,参数);各参数含义如下: 命令:一个传递给外部应用程序使用的字符串,或者是一个传递给Flash Player的命令。 参数:一个
24、传递给外部应用程序用于任何用途的字符串,或者是传递给Flash Player的一个变量值。2getURL函数 getURL函数将来自特定“URL”的文档加载到Web浏览器窗口中,或将变量传递到位于所定义“URL”的另一个应用程序。若要测试此动作,确保要加载的文件位于指定的位置。若要使用绝对“URL”(例如:),则需要网络连接。书写格式如下: getURL(url,窗口,方法);各参数含义如下: url:从该处获取文档的URL。 窗口:可选参数,指定文档应加载到其中的窗口或HTML框架。可输入特定窗口的名称,或从下面的保留目标名称中选择: _self:指定当前窗口中的当前框架。 _blank:指
25、定一个新窗口。 _parent:指定当前框架的父级。 _top:指定当前窗口中的顶级框架。方法:选择发送变量的方法,有GET和POST两种方法。如果没有变量,则省略此参数。GET方法将变量追加到URL的末尾,该方法用于发送少量变量。POST方法在单独的HTTP标头中发送变量,用于发送长的变量字符串。3loadMovie函数 loadMovie函数是指在播放原始.swf文件的同时将.swf文件或JPEG文件加载到Flash Player中。书写格式为: loadMovie(url,目标,方法); 各参数含义如下: url:要加载的swf文件或JPEG文件的绝对或相对URL。 目标:指向目标影片剪
26、辑的路径。 方法:可选参数,为一个证书,指定用于发送变量的HTTP方法。 4unloadMovie函数 unloadMovie函数是从Flash Player中删除影片剪辑实例。书写格式为: unloadMovie( 目标); 目标:要删除的影片剪辑的目标路径。 例如,在下列语句中,当单击按钮时,卸载主时间轴上的名为“a”的影片剪辑实例。 on(release) unloadMovie(a); 5loadVariables函数 loadVariables函数用于加载外部文件中的变量值。使用loadVariables函数,可以让Flash从外部装载指定数据文件中的数据,并将数据以变量的方式存储到
27、指定的“影片剪辑”对象中。书写格式为: 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)语句块的执行,跳出本switch case 条件2; statement(s)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度绿色建筑项目委托代理采购合同范文3篇
- 2025版35KV变电站电气调试及试验合同范本3篇
- 2025至2030年中国连杆摆动臂行业投资前景及策略咨询研究报告
- 2025版股权激励方案设计及执行管理协议3篇
- 2025年度安防技术培训与市场拓展合同样本3篇
- 物流仿真建模课程设计
- 2024年校园门卫疫情防控与勤务管理聘用合同6篇
- 2025版物流仓储项目投资合作协议3篇
- 2025版快递企业智能快递柜租赁与运营合同集2篇
- 空调课程设计背景
- 《医学人文课件》
- 四川省成都市龙泉驿区2023-2024学年三年级数学第一学期期末监测试题含答案
- 高空除锈刷漆施工方案模板
- 锅炉控制器modbus协议支持说明
- 粉末涂料有限公司危废库安全风险分级管控清单
- 安全生产信息管理制度全
- 住宅物业危险源辨识评价表
- 世界主要国家洲别、名称、首都、代码、区号、时差汇总表
- 2023学年广东省广州市越秀区铁一中学九年级(上)物理期末试题及答案解析
- 《报告文学研究》(07562)自考考试复习题库(含答案)
- 安全操作规程
评论
0/150
提交评论