第6章 动作脚本入门 教学目标 重点与难点 本章将介绍lash的 一项非常强大的功 能—— 动作脚本,它 是一种类似Javascript 的脚本语言,用于实 现更为复杂和交互性 更强的Flash动画。我 们在这一章里学习到 它的基本语法和一些 常用命令。 了解动作脚本的功能 熟悉动作脚本的多 种输入方法 掌握动作脚本的基本 语法 熟悉动作脚本的常用 命令和编写方法
6.1 使用动作面板 动作面板介绍 管理影片中的动作脚本
6.1.1 动作面板介绍 动作工具箱 脚本窗口 脚本导航器 功能按钮
6.1.2 管理影片中的动作脚本 添加动作脚本 为按钮添加play动作 “on”事件处理函数
6.1.2 管理影片中的动作脚本 添加动作脚本 选择事件类型,完成动作脚本
6.1.2 管理影片中的动作脚本 动作脚本的固定 双击“脚本导航器”中的某一项,即可固定脚 本 被固定的脚本
6.1.2 管理影片中的动作脚本 代码提示 输入语句时按 下“脚本助手” 按钮,Flash 可 以检测到正在 输入的动作并 显示代码提示
6.1.2 管理影片中的动作脚本 检查语法和标点 (1)在【动作】面板中,按快捷键Ctrl+T。 (2)在【动作】面板中,单击右上角的按钮, 在弹出的菜单中选择【语法检查】命令。 (3)单击“脚本窗口”上方的【语法检查】 按钮。
6.2 ActionScript编程基础 ActionScript程序中的变量 ActionScript程序中的常量 关于函数 语法规范
例:定义按钮的程序 显示示例代码
6.2.1 ActionScript程序中的变量 Variables(变量) :存储了任意数据类型 值的标识符。 变量的定义 Variables(变量) :存储了任意数据类型 值的标识符。 变量可以存放任何数据类型,包括数值 (如Num)、字符串值(如Str)、逻辑值、 对象或影片剪辑等。
6.2.1 ActionScript程序中的变量 变量的名称必须以英文字母开头 变量的名称中不能使用除了“_”(下划线) 以外的符号 变量的命名和命名规则 变量的名称必须以英文字母开头 变量的名称中不能使用除了“_”(下划线) 以外的符号 不能使用与命令(关键字)相同的名称 变量的名称中间不能有空格 变量的名称最好能达到“见名知意”的效 果
6.2.1 ActionScript程序中的变量 变量的数据类型 数值型 字符串型 其他数据类型
6.2.1 ActionScript程序中的变量 m=20; m自动被定义为数值型 m=“myname” m自动被定义为字符 串类型 变量的数据类型 m=20; m自动被定义为数值型 m=“myname” m自动被定义为字符 串类型 使用Typeof运算符可以确定表达式或变量的 数据类型 使用Number函数,可以把字符串转换为数值 使用String函数,可以把数值转换为字符串
6.2.1 ActionScript程序中的变量 本地(局部)变量:只在自身代码块中有效。 变量的作用域 本地(局部)变量:只在自身代码块中有效。 时间轴变量:可以在使用目标路径指定的任 何时间轴内有效 全局变量:在整个影片中都可以访问的变量。
6.2.1 ActionScript程序中的变量 使用Set Varible动作或赋值运算符(=)可以 声明常规变量 变量的声明和使用 使用Set Varible动作或赋值运算符(=)可以 声明常规变量 函数主体内使用var语句声明本地变量 var Str = "Flash 8 ActionScript"; var Num = 10;
6.2.1 ActionScript程序中的变量 使用_global标识符可以声明全局变量 变量的声明和使用 使用_global标识符可以声明全局变量 使用trace动作将待测试变量的值发送到【输 出】面板 _global. myName = "Global001"; trace(j); trace(Str);
6.2.1 ActionScript程序中的变量 变量的声明和使用 如果在表达式中使用了一个未声明的变量, 则变量的值将是undefined,脚本也将产生错 误 getURL(myWeb); myWeb="http://www.hongen.com/";
6.2.2 ActionScript程序中的常量 常量就是一种属性,是指在程序运行中不 会改变的量。逻辑常量True(真)和False (假)在编程的时候也会经常被用到。
6.2.3 关于函数 函数的定义 函数(Function)就是在程序中可以重复使 用的代码,用户可以将需要处理的值或对 象通过参数的形式传递给函数,然后由函 数得到结果。
6.2.3 关于函数 自定义函数 函数的格式 function 函数名称(参数1,参数2,……,参数n){ //函数体,即函数的程序代码 }
6.2.3 关于函数 on(press){ c=Number(a.text)*Number(b.text);} 调用函数的格式 6.2.3 关于函数 自定义函数 调用函数的格式 函数名称(参数1,参数2,……,参数n); on(press){ c=Number(a.text)*Number(b.text);}
例:定义一个计算矩形面积的函数 area = MyArea(3, 6); trace("area="+area); function MyArea(m, n) { //自定义计算矩形面积的函数 return m*n; //在这里返回结果,也就是得到函数的返回值 } 调用 area = MyArea(3, 6); trace("area="+area);
6.2.3 关于函数 所谓系统函数,就是Flash内置的函数,用 户在编写程序的时候可以直接拿来使用。 Array Boolean 6.2.3 关于函数 系统函数 所谓系统函数,就是Flash内置的函数,用 户在编写程序的时候可以直接拿来使用。 Array Boolean Escape String Number
6.2.4 语法规范 关键字
6.2.4 语法规范 算术运算符:+(加)、-(减)、*(乘)、 /(除)、%(求余数)、++(递增)、--(递 减)。 6.2.4 语法规范 运算符 算术运算符:+(加)、-(减)、*(乘)、 /(除)、%(求余数)、++(递增)、--(递 减)。 关系运算符:<(小于)、>(大于)、<= (小于或等于)、>=(大于或等于)。 逻辑运算符包括:&&(逻辑“和”)、||(逻 辑“或”)、!(逻辑“非”)。
6.2.4 语法规范 表达式 a = 100 变量名 赋值号 常量
6.2.4 语法规范 10+20*2-30; 算术表达式:在ActionScript中用算术运算 符(加、减、乘、除)做数学运算的表达 式。 6.2.4 语法规范 表达式 算术表达式:在ActionScript中用算术运算 符(加、减、乘、除)做数学运算的表达 式。 10+20*2-30;
6.2.4 语法规范 表达式 字符表达式:用字符串组成的表达式称为 字符表达式。 “你的大名是:”+“suanqing!”
6.2.4 语法规范 if (y == 8) { gotoAndPlay(20); } 逻辑表达式:逻辑运算符就是做逻辑运算 的表达式。 6.2.4 语法规范 表达式 逻辑表达式:逻辑运算符就是做逻辑运算 的表达式。 if (y == 8) { gotoAndPlay(20); }
6.2.4 语法规范 表达式 逻辑表达式:逻辑运算符就是做逻辑运算 的表达式。
6.2.4 语法规范 双斜杠后面是注释,在程序中不参与执行, 用于增强程序的可读性 ActionScript是区分大小写字母的 6.2.4 语法规范 代码书写格式 双斜杠后面是注释,在程序中不参与执行, 用于增强程序的可读性 ActionScript是区分大小写字母的 ActionScript的每行语句都以分号“;”结束 字符串不能跨行
6.3 事件和事件处理函数 事件的分类和方法 on()事件处理函数 事件处理函数方法 事件侦听器 按钮事件与影片剪辑事件
6.3 事件和事件处理函数 演示实例
6.3.1 事件的分类和方法 Flash 8中产生事件的条件: 当某个影片剪辑载入或卸载时 当在时间轴上播放到某一帧时 6.3.1 事件的分类和方法 Flash 8中产生事件的条件: 当某个影片剪辑载入或卸载时 当在时间轴上播放到某一帧时 当单击某个按钮或按下键盘上的某个键时
6.3.1 事件的分类和方法 Flash 8提供了3种编写事件处理程序的方法: 事件处理函数方法; 针对对象的on()事件处理函数; 6.3.1 事件的分类和方法 Flash 8提供了3种编写事件处理程序的方法: 事件处理函数方法; 针对对象的on()事件处理函数; 事件侦听器。
6.3.2 on()事件处理函数 on()函数的格式 on(鼠标事件){ //此处是事件触发后的语句,这些语句组成的函数体来响应鼠标事件 }
6.3.2 on()事件处理函数 on(press){ play();} on(press){ stop();} “小球弹跳”实例中第一个按钮的脚本 第二个按钮的脚本 on(press){ play();} on(press){ stop();}
6.3.3 事件处理函数方法 对象.事件处理函数方法名称 = function () { // 编写的程序代码,对事件作出反应 } 6.3.3 事件处理函数方法 事件处理函数格式 对象.事件处理函数方法名称 = function () { // 编写的程序代码,对事件作出反应 }
6.3.3 事件处理函数方法 实现“小球弹跳”效果 On(press){play();} play_btn.onPress=function() { play(); } stop_btn.onPress=function() { stop();
6.3.4 事件侦听器 事件侦听器的定义 事件侦听器让一个对象(称作侦听器对 象)接收由其他对象(称作广播器对象)生 成的事件。广播器对象注册侦听器对象以接 收由该广播器生成的事件。
6.3.4 事件侦听器 事件侦听器模式的格式 listenerObject.eventName = function(参数){ // 定义侦听器对象事件函数 // 此处是编写的代码 }; broadcastObject.addListener(listenerObject);
6.3.5 按钮事件与影片剪辑事件 dragOver Release dragOut releaseOutside keyPress 6.3.5 按钮事件与影片剪辑事件 on()事件处理函数所支持的事件 dragOver dragOut keyPress press Release releaseOutside rollOver rollOut
onClipEvent()事件处理函数所支持的事件 6.3.5 按钮事件与影片剪辑事件 onClipEvent()事件处理函数所支持的事件 Data enterFram keyDown keyUp load mouseMove mouseDown mouseUp unload
6.4 基本命令和程序结构控制 时间轴控制命令 浏览器和网络控制命令 程序流程结构控制 Flash中的常用对象
6.4.1 时间轴控制命令 play() 作用:可以指定电影继续播放。 stop() 6.4.1 时间轴控制命令 play() 作用:可以指定电影继续播放。 stop() 作用:停止当前播放的电影,该动作最常见 的运用是使用按钮控制影片剪辑。
显示示例代码 6.4.1 时间轴控制命令 gotoAndPlay(scene,frame); 作用:跳转并播放,跳转到指定场景的指定 6.4.1 时间轴控制命令 gotoAndPlay(scene,frame); 作用:跳转并播放,跳转到指定场景的指定 帧,并从该帧开始播放,如果没有指定场 景,则将跳转到当前场景的指定帧。 跳转至场景的名称 跳转至帧的名称 显示示例代码
6.4.1 时间轴控制命令 gotoAndstop(scene,frame) 作用:跳转并停止播放,跳转到指定场景的 6.4.1 时间轴控制命令 gotoAndstop(scene,frame) 作用:跳转并停止播放,跳转到指定场景的 指定帧并从该帧停止播放,如果没有指定场 景,则将跳转到当前场景的指定帧。 跳转至场景的名称 跳转至帧的名称
显示示例代码 显示示例代码 6.4.1 时间轴控制命令 nextFrame() 作用:跳至下一帧并停止播放。 prevFrame() 6.4.1 时间轴控制命令 nextFrame() 作用:跳至下一帧并停止播放。 prevFrame() 作用:跳至前一帧并停止播放。 显示示例代码 显示示例代码
显示示例代码 6.4.1 时间轴控制命令 StopAllSounds() 作用:使当前播放的所有声音停止播放,但 是不停止动画的播放。 6.4.1 时间轴控制命令 StopAllSounds() 作用:使当前播放的所有声音停止播放,但 是不停止动画的播放。 nextScene() 作用:跳至下场景并停止播放。 显示示例代码
6.4.2 浏览器和网络控制命令 fscommand命令 格式:fscommand(命令,参数);
6.4.2 浏览器和网络控制命令 GetURL(URL,Window,method) 作用:添加超级链接,包括电子邮件链接。 显示示例代码
显示示例代码 6.4.2 浏览器和网络控制命令 loadMovie(URL,level/target,[variables]) 6.4.2 浏览器和网络控制命令 要载入文件的绝对或相对地址 loadMovie(URL,level/target,[variables]) 可选参数 载入影片剪辑所处的级别 目标影片剪辑的路径 显示示例代码
显示示例代码 6.4.2 浏览器和网络控制命令 unloadMovie(level/target) 作用:从播放器中删除已经载入的电影或影 6.4.2 浏览器和网络控制命令 unloadMovie(level/target) 作用:从播放器中删除已经载入的电影或影 片剪辑。 显示示例代码
演示实例 6.4.2 浏览器和网络控制命令 loadVariables(url,level/“targt”,[ Variables]) 6.4.2 浏览器和网络控制命令 要载入文件的绝对或相对地址 loadVariables(url,level/“targt”,[ Variables]) 作用:读入外部的数据,并作为变量将被 设置到播放器级别或目标影片剪辑中。 可选参数 载入影片剪辑所处的级别 目标影片剪辑的路径 演示实例
6.4.3 程序流程结构控制 选择结构-IF 语句 格式: if(条件){ 代码块A } Else { 代码块B
6.4.3 程序流程结构控制 选择结构-IF 语句 流程图
显示示例代码 6.4.3 程序流程结构控制 格式: 选择结构-Switch 语句 switch (condition) { case A : 6.4.3 程序流程结构控制 选择结构-Switch 语句 格式: switch (condition) { case A : // 语句 // 落空 case B : break; case Z : default : } 显示示例代码
6.4.3 程序流程结构控制 循环结构-For 语句 格式: for(表达式1;条件表达式;表达式2) { 代码块 }
6.4.3 程序流程结构控制 循环结构-For 语句 流程图
6.4.4 Flash中的常用对象 new Color() 作用:创建Color对象的实例。 setRGB() getRGB() 作用:获取由setRGB方法指定的颜色值。
6.4.4 Flash中的常用对象 new Sound() 作用:创建Sound对象的实例。 attachSound() 作用:在影片播放时将【库】中的声音元件 附加到场景中。 start()和stop() 作用:开始播放和停止声音。
6.4.4 Flash中的常用对象 new Date() 作用:创建一个Date对象的实例。 getDate() Data对象 new Date() 作用:创建一个Date对象的实例。 getDate() 作用:获取系统时间来创建Date对象的实例。 例:mydate=new Date(2010,12,8) var today_date:Date = new Date(); var date_str:String = (today_date.getDate()+"/"+(today_date.getMonth()+1)+"/"+today_d ate.getFullYear()); trace(date_str); // displays current date in United States date format
6.4.4 Flash中的常用对象 Math 类是一个顶级类,不必使用构造函数即可使 用其方法和属性。 Math.abs(-10)绝对值函数 作用:用来计算一个数的绝对值。 Math.round(23.3) 四舍五入取整函数 作用:方法将一个浮点数四舍五入为最接近 的整数。 Math.min(2,10)、Math.max(10,3) 最大、最小值函数 作用:取两个数中较小的一个数,或较大的一个 数。
6.4.4 Flash中的常用对象 Math.sqrt平方根函数 作用:计算一个数的平方根。 Math.random()随机数函数 作用:返回一个大于或等于0并且小于1的随 机浮点数。例如Math.random()*5
6.5 习题与上机操作
上机操作 (1)模拟文字的描写,像激光扫过的效果,如下 图所示。
上机操作 (2)制作一个图标,制作星光沿图标运动的效果, 如下图所示。
上机操作 (3)制作一个“多项选择题”的课件,如下图所示。
上机操作 (4)制作一个下雨的场景动画,效果如下图所示。