flash动画设计第8章.ppt

上传人:本田雅阁 文档编号:2144026 上传时间:2019-02-21 格式:PPT 页数:45 大小:664.51KB
返回 下载 相关 举报
flash动画设计第8章.ppt_第1页
第1页 / 共45页
flash动画设计第8章.ppt_第2页
第2页 / 共45页
flash动画设计第8章.ppt_第3页
第3页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《flash动画设计第8章.ppt》由会员分享,可在线阅读,更多相关《flash动画设计第8章.ppt(45页珍藏版)》请在三一文库上搜索。

1、第8章,交互式动画基础知识,8.1撰写脚本 8.2动作脚本的语法 8.3数据类型 8.4变量的使用 8.5表达式与运算符 8.6条件语句和循环语句 8.7事 件,本章小结,8.1撰写脚本,动作脚本就是在动画运行过程中起到控制和计算作用的程序代码。理解和掌握好脚本的基本元素和编程技巧是学习深层次动画制作的根本。,811 脚本概述 自从Flash5之后,编程变得越来越被重视,特别是推出了Actionscript之后。作为用户不必非常了解每一个Actionscript的元素,只要有一个清晰的目标就可以开始简单的编程了。当然,动作脚本也有它的语法和规则,这些语法和规则用来确定哪些字符和单词可以用于产生

2、什么样的交互效果。,812使用动作面板 动作面板有两种模式: 标准模式和专家模式。 标准模式:是将命令已经分好了类别, 可以直接进行选择。 专家模式:是让用户直接输入命令, 就像平时的编程。,813为对象添加动作 要为对象添加动作,可以通过在动作面板中编写语句来完成,比如,要指定当用户按“L”键时,链接到一个网页,则可以给按钮“L”附加以下动作: on (keyPress”L”) getURL(“http:/”); 在动作面板中的程序,如图所示:,8.2动作脚本的语法,821点语法 点语法的结构如下所述: 点的左侧可以是动画中的对象、实例或时间轴。点的右侧可以是与左侧元素相关的属性、目标路径、

3、变量或动作。下面是三种不同的形式:,myClip.visible=0;,名为myClip的Movie Clip通过使用点语法将_visible属性设置为0,使得它变透明。,menuBar.menu1.item5;,显示了变量item5的路径,它位于动画menu1中,menu1又嵌套在动画menuBar中。,_root.gotoAndPlay(5);,使用_root参考命令,主时间轴跳转到第5帧并进行播放。,822大括号 ActionScript使用大括号符号()来组织脚本元素(这些字符也叫做波形括号)。在下面的程序中,当鼠标被按下时,在大括号之间的所有语句将被执行。 on(release) d

4、ots_color.setRGB(0x00cc00); ,823分号 在Actionscript中使用分号作为结束标志。例如,下面的语句中就使用了分号作为结束标志: gotoAndplay(); row=0; 如果忽略了分号,Flash也能正确编译脚本。但是,最好还是使用分号作为结束标志。,824括号 当用户定义函数时,所有参数都放置在括号内。例如: function myFunction(name,age) 当用户调用函数时,又需要使用括号将参数传递给函数。例如: myFunction(”Linda”,16); 使用括号还可以越过Actionscript的优先级顺序,使Actionscrip

5、t语句更容易阅读。,825大写和小写字母 在Actionscript中,关键字、类名、变量等都区分大小写的,其他则无所谓。例如,下面的语句是等价的:cat.hill=true; CAT.hill=true; 但是,最好统一大小写的规则,这样有助于使Actionscript代码中的函数和变量名等更容易识别。,826注释 在动作面板中,使用comment动作可以给脚本添加注释信息,以使代码更容易阅读。 在动作列表中,注释以粉红色显示。用户可以添加任意长度的批注而不会影响导出文件的大小。,827关键字 Actionscript在语言中保留了若干关键字以做特殊用途。用户不能使用它们作为变量名、函数或标

6、签名。,828常数 常数就是一种属性,这种属性的值永远都不会发生变化。,8.3数据类型,数据类型是描述变量或动作脚本元素可以包含的信息的种类。数据类型包含了两类:原始类和引用类。原始类数据类型又包括字符串、数值和布尔值,它们都有一个常数值,因此可以包含它们所代表的元素的实际值。引用类数据类型包括动画和对象,它们的值是可变的,因此它们包含对该元素的实际值的引用。每种数据类型都有自己的规则。,831字符串 “字符串”就是包括字母、数字和标点符号等在内的字符序列。在动作脚本中,用户可以在单引号或双引号内输入字符串。字符串被当作字符,而不是变量进行处理。还有一些必须用特殊的转义码才能表示的字符。,83

7、2数值 数值数据类型是双精度浮点数。可以使用加()、减()、乘()、除()、余数(%)、递增()和递减()来控制数值。也可以使用内置的Math和Number类来处理数字。,833布尔值 布尔值只有两种选择:true和flase。有时动作脚本也会将它们转换为1和0,布尔值经常和逻辑运算符一起用于控制脚本的程序中。,834 对 象 对象是属性的集合。每个属性都有自己的名称和值。属性的值可以是任何的Flash数据类型,甚至是对象数据类型。这样就可以使对象相互包含或嵌入其他对象。要指定对象及其属性,可以使用点运算符。,835影片剪辑 影片剪辑是Flash电影中可以播放动画的元件。它们是惟一引用图形元素

8、的数据类型。可以利用点运算符来指定对象及其属性。通过动作脚本的MovieClip对象包含的方法可以对舞台上的影片剪辑符号进行控制。,836空值与未定义数据类型 空值数据类型只有一个值,即null,此值代表“没有值”,但不为0。null可以用在各种情况中,例如指示变量尚未接收到值、指示变量不再包含值、指示函数没有可以返回的值、指示省略了一个参数等。 未定义数据类型有一个值,即undefined,被用于尚未指定值的变量。,8.4变量的使用,变量实际是一个包含信息的空间。此空间不会改变,但其中的内容是可以变化的。在动画播放的过程中修改变量中的值,可以记录和保存用户操作的信息。变量可以存放任何数据类型

9、。包括数值型、字符串型、布尔型、对象或动画等。每个动画和动画片断都有自己的一组变量,每个变量都有独立于其他变量的值。,841命名变量与输入变量 命名变量要遵守下面的规则: (1) 必须是标识符。 (2) 不能是关键字、布尔值。 (3) 在其范围内一定是惟一的。,输入变量时,用户不必明确定义变量包含的数据类型。Flash可以根据变量被赋值的情况自动确定变量的数据类型。,(1)局部变量:在自身代码块中有效的变量(在大括号内)。 (2)全局变量:即使没有使用目标路径指定,也可以在任何时间轴内有效。 (3)时间轴变量:可以在使用目标路径指定的任何时间轴内有效。,842确定变量范围 所谓确定变量的范围,

10、就是指变量被认可和可以被引用的区域。在动作脚本中有3种类型的变量范围:,使用局部变量可以防止命名冲突,减少动画中可能发生的错误。因为局部变量只能在其自身的代码块中修改,所以较好的做法是在函数的主体中使用局部变量。如果在函数的表达式中使用了全局变量,则当全局变量的值在函数外被修改时,函数也将被修改。,843变量声明 不同的变量类型声明的形式有所不同,要声明时间轴变量,可以使用set variable动作或赋值运算符(=),两种方法可获得的结果一样。要声明局部变量,可以在函数主体内使用var语句。局部变量只在自身的代码块中有效,超出该代码块即无效。要声明全局变量,可以在变量名前面使用_global

11、标识符。例如: 创建一个全局变量myBook,_global.myBook=”China”; 要测试变量的值,可以使用trace动作将变量的值发送到输出窗口。,trace语句类似我们经常用到的print语句。,844在脚本中使用变量 在脚本中使用变量,则必须先声明变量。如果使用了一个未声明的变量,则变量的值将是undefined,脚本也因此产生错误。在程序中,变量的值可以被多次修改。变量所包含的数据类型将影响到变量修改的方式和时间。原始数据类型都是通过值进行传递的,这意味着变量的实际内容被传递到变量中。 比如下例: var x=15; var y=x; var x=30; 输出的结果是x=30

12、,y=15。,8.5表达式与运算符,flash中表达式是指可以取得返回值的任何语句。用户可以通过运算符、求值、调用函数等方法创建表达式。如果在动作面板的普通模式下编写表达式,则请确认已经选中了表达式复选框,否则在参数框中包含的就只是文本字符串。 运算符是指定如何合并、比较或修改表达式中值的字符。运算符所操作的元素被称为运算项。,851运算符和表达式的输入 可以在动作属性面板中将表达式和运算符输入,如图8.6所示: 其中上面就是表达式,中间用的+、* 就是运算符。,852运算符的优先级 当同一个语句中使用两个或两个以上的运算符,一些运算符就会优于其他的运算符。动作脚本语言严格按照运算符的优先级顺

13、序来执行语句。例如,乘除优于加减,括号优于乘法。 当两个或两个以上的运算符具有相同的运算优先级时,它们将按照从左到右的原则运算。,853算术运算符 算术运算符可以执行加、减、乘、除和其他数学运算。最常见的是递增或递减的用法,如:i+、k-。,854比较运算符 比较运算符用于比较表达式的值,然后返回一个布尔值true或false。常见用于条件语句和循环语句。,855字符串运算符 字符串运算符(+)可以将两个字符串连在一起。例如:“好好”+“学习”得到的结果是“好好学习”。如果相加的项目中只有一个是字符串,则flash会自动将另一个操作数转换为字符串。 比较运算符、=、和=在处理字符串时也有特殊的

14、效果。这些运算符会比较两个字符串,以确定哪一个字符串按字母数字顺序排在前面。只有在两个操作数都是字符串时,比较运算符才会执行字符串比较。如果只有一个操作数是字符串,动作脚本会将两个操作数都转换为数字,然后执行数值比较。,856逻辑运算符 逻辑运算符对布尔值(true或false)进行比较 ,然后返回第三个布尔值。 比如,两边的逻辑值都是true,则逻辑“与”运算符(&)将返回true。如果其中一边或两边的逻辑值为true,则逻辑“或”运算符(|)将返回true。逻辑运算符通常与比较运算符结合使用。,857位运算符 按位运算符在内部处理浮点数,将它们转换为32位整型。执行的确切运算取决于运算符,

15、但是所有的按位运算都会分别评估32位整型的每个二进制位,从而计算新的值。,858赋值运算符 程序中使用赋值运算符(=)为变量赋值,例如:var x=5;用户还可以使用赋值运算符给同一个表达式中的多个变量赋值。用户还可以使用复合赋值运算符联合多个运算:复合运算符可以对两个操作数都进行运算,然后将新值赋给第一个操作数。,859点运算符和数组访问运算符 用户可以使用点运算符(.)和数组运算符( )访问任何内置或自定义的程序中对象属性。点运算符在左边使用对象,在右边使用属性或变量。属性或变量名不能是从字符串获取的字符或变量,而必须是标识符。点运算符和数组访问运算符是一样的,但点运算符将标识符作为其属性

16、,而数组访问运算符则从其内容中获取名称,然后读取命名属性的值。用户可以使用数组访问运算符动态设置和检索实例名称和变量,也可以被用在赋值运算符的左边,这时允许用户动态设置实例、变量和对象的名称。,8.6条件语句和循环语句,脚本程序的结构,按照结构化语言的特点,一般都按照执行的方式分为顺序结构、分支结构和循环结构。其中顺序结构最为简单,就是在语句执行的时候,程序将按照顺序执行语句。,861条件语句 条件语句,也叫选择语句,可以根据条件的判断结果来执行相应的代码。条件语句包括两个类型,即if型和switch型。其中形式如下: (1) if语句 if(条件表达式) /条件成立的情况下,执行中的语句,否

17、则跳过执行后面的语句,(2)ifelse语句 if(条件表达式) /条件成立,执行内的语句 else /条件不成立时,执行内的语句 另,if语句可以嵌套,实现多重判断。 (3)switch-case语句 switch(表达式) case 表达式1: 语句1;break; case 表达式2: 语句2;break; case 表达式n: 语句 n;break;/根据switch的表达式执行相应的case语句,利用break跳出分支,若没有相匹配的表达式则执行default语句组。 default 语句组: ,862循环语句 如果要多次执行相同的语句,可以利用循环语句简化程序。 在flash中有3

18、种循环语句: (1) for语句。 for语句的格式: for(表达式1;表达式2;表达式3) 循环体 /条件成立时,执行的语句。 其中:表达式1为开始循环的初始条件;表达式2为循环判断的条件;表达式3为每次循环后计算的表达式,通常为递增或递减。,(2) for in语句。 这个语句,仅仅和数组以及对象数据类型一起使用。使用此语句可以在不知道数组里面有多少个元素,或元素一直在变化的情况下遍历所有的数组元素。 for(n in 数组名或对象数据类型) /遍历数组或输出对象数据类型,(3) while语句。 while循环在条件成立的时候,一直循环到条件不成立。 while(条件表达式) /条件为

19、真时,执行中的语句,在循环过程中,也可以使用break语句跳出循环。,8.7事 件,事件就是动画中程序根据外部发生的事情,做出的相应响应。在flash中有3种事件: (1) 关键帧事件。 (2) 鼠标(按钮)事件。 (3) 电影剪辑事件。 这3种事件都对应着可以在flash中放脚本代码的位置。也就是说,将3种事件分别放置在对应的关键帧、按钮和电影剪辑实例中。用鼠标右键点击这些地方,如果菜单中的动作选项是可以选择的,则意味着是可以添加脚本动作的,否则为灰色不可用。,871关键帧事件 当把程序放在关键帧里面的时候,只要flash到达所在关键帧,程序就开始执行。因为关键帧事件只是在影片运行到相应的关

20、键帧时,才会被激发,所以一般只把关键帧作为一个放置通用代码的地方。,872鼠标事件 鼠标事件,也叫按钮事件。是指一种基于鼠标指针位置和移动产生的交互性事件。鼠标事件只能在场景里的按钮实例中放置,而不是在按钮的4个状态关键帧中放置。放置在这4个状态关键帧里的所有动作将被忽略。鼠标事件用到on()语句。使用方法如下: on(mouseEvent) /所执行的语句 mouseEvent的参数如下: (1) press 在鼠标指针经过按钮时按下鼠标按钮。 (2) release 在鼠标指针经过按钮时释放鼠标按钮。,(3) releaseOutside 鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮

21、之外,此时释放鼠标按钮。 (4) rollout 鼠标指针滑出按钮区域。 (5) rollover 鼠标指针滑过按钮区域。 (6)dragOut 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域。 (7)dragOver 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。 (8)keyPress (“key”)按下指定的键。,873电影剪辑事件 电影剪辑事件用法如下: onClipevent(movieEvent) /执行的语句 其中movieEvent的参数如下: (1)load 电影剪辑装载时被激发。 (2)unload 电影剪辑卸载时被激发。 (3)enterFrame

22、 当进入一帧时激发,先处理与 enterFrame剪辑事件关联的动作,然后才处理附 加到受影响帧的所有帧动作。 (4)mouseMove 当鼠标移动时激发。,(5)mouseDown 当按下鼠标左键时激发。 (6)mouseUp 当释放鼠标左键时激发。 (7)keyDown 当按下某个键时激发。 使用Key.getCode()获取有关最后按下的键的信息。 (8)keyUp 当松开某个键时启动。使用Key.getCode()获取有关最后按下的键的信息。 (9)date当使用loadVariables(载入变量)或loadMovie(载入影片)时接收数据时激发此动作。,第八章小结,l 要正确使用Actionscript的术语; l 一个大程序可以将它们分成多个小程序段,随时加以测试; l 使用trace函数随时跟踪变量和属性的变化情况; l 使用自动换行功能可以使工作更轻松; l 使用注释代码。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1