动画制作与Flash脚本基础.ppt

上传人:re****.1 文档编号:576028749 上传时间:2024-08-19 格式:PPT 页数:127 大小:1.22MB
返回 下载 相关 举报
动画制作与Flash脚本基础.ppt_第1页
第1页 / 共127页
动画制作与Flash脚本基础.ppt_第2页
第2页 / 共127页
动画制作与Flash脚本基础.ppt_第3页
第3页 / 共127页
动画制作与Flash脚本基础.ppt_第4页
第4页 / 共127页
动画制作与Flash脚本基础.ppt_第5页
第5页 / 共127页
点击查看更多>>
资源描述

《动画制作与Flash脚本基础.ppt》由会员分享,可在线阅读,更多相关《动画制作与Flash脚本基础.ppt(127页珍藏版)》请在金锄头文库上搜索。

1、第7章 动画制作与Flash脚本基础7.1计算机动画研究的内容7.2计算机动画的应用7.3ActionScript简介7.4ActionScript语法规则7.5数据类型、变量、表达式和函数7.6一般对象属性7.7常用交互动作命令7.8内置类7.9综合实例动画制作指的是用计算机生成一系列可供实时演播的连续画面的技术,即所谓的计算机动画技术计算机动画是使用计算机作为工具来产生动画的技术7.1 计算机动画研究的内容1. 运动控制方法运动控制方法2. 动画描述模型与动画语言动画描述模型与动画语言3. 中间画面的生成技术中间画面的生成技术4. 三维动画中物体造型技术三维动画中物体造型技术5. 动画绘制

2、技术动画绘制技术1.运动控制方法运动控制方法计算机动画中用于控制动画物体随时间而运动控制模型主要有:运动学方法、物理推导方法、随机方法、行为规则方法、自动运动控制方法等。常用的三类主要的运动控制模型依次是几何模型、物理学模型和行为模型运动学方法这是传统的动画技术运动通过几何变化(包括旋转、缩放、位移、切变)来描述物理推导方法应用物理定律推导物体的运动运动是用物体的质量、惯量、作用在物体的内部外部力力矩以及运动环境中其他物理性质来计算的随机方法它是描述不规则的随机运动所采用的在造型和运动过程中使用随机扰动的一种方法主要包括分形技术、粒子系统等方法,用于模拟山形成、树生长、云飘运动、火燃烧、弹药爆

3、炸、风吹草动等不规则的运动和变化行为规则方法使用一组行为规则,确定每步运动要执行的动作自动运动控制方法基于合成角色的动画系统运动控制将使用人工智能、机器人学技术自动执行2. 动画描述模型与动画语言动画描述模型与动画语言对动画描述较有影响的描述模型有面向对象方法、角色理论、记号系统、时间轴描述、基于时序算子的描述、基于知识的描述等基于动画描述模型开发的动画描述语言主要有三类:(1)记号语言(2)通用语言(3)图形语言 (1)记号语言记号语言简单直观,一般提供编码、求精和动画过程,编码任务可通过一种智能的记号编辑器来完成。(2)通用语言在通用程序设计语言中嵌入动画功能是一种常用的方法,语言中变量的

4、值可用作执行动画程序段的参数(3)图形语言文本语言的缺点是不能可视地观察脚本的设计效果,目前大多数实用的动画系统都提供了图形形式动画语言支持可视的设计方式,这种语言将动画中场景的表示、编辑、表现同时显示在屏幕上。3. 中间画面的生成技术中间画面的生成技术动画的中间画面的生成技术主要有三种途径,即关键帧方法、算法生成和基于物理的动画生成。(1)关键帧方法它是基于动画设计者提供的一组关键帧、通过插值自动产生中间帧的技术。分为基于图像的关键帧动画和参数化的关键帧动画。(2)算法生成动画物体的运动是基于算法控制和描述的给定时刻物体的参数按照给定的物理定律改变,可以以解析形式定义或使用复杂的微分方程定义

5、,通过求解得到某一时刻画面的物体位置参数。算法动画可体现真实性和虚幻性两重特点。(3)基于物理的生成它是基于物体造型、应用物理定律以及基于约束的技术来推导和计算物体随时间运动或变化的一种技术。4. 三维动画中物体造型技术三维动画中物体造型技术在三维建模动画里,计算机不仅仅是一个辅助工具计算机可方便而精确地表示人类难以表示的三维透视画面动画中物体表示可分为三个层次:(1)线框:物体由一系列线框表示;(2)表面:物体由一系列面素(多边形、代数曲面、曲面片)表示;(3)体:物体看作一系列体素组成或看作三维空间的包围部分三维动画中物体造型技术三维动画中物体造型技术曲面造型最通用的技术是通过多边形集合来

6、描述曲面。实体造型能完全、精确、有效地表示三维物体,并且十分符合人们在几何形体构造时的思维方式。人体造型是最困难及最富挑战性的一个课题。常用的人体造型方法有棍状模型、表面模型、体模型。5. 动画绘制技术动画绘制技术动画绘制是动画制作的关键步骤,绘制技术的好坏直接影响着动画的效果真实感图形绘制技术是计算机图形学研究的一个重要内容有代表性的常用的光照模型有Phong模型、Cook-Torrance模型、Whitted模型等7.2 计算机动画的应用动画应用主要分为面向影视制作和应用和面向模拟的应用面向影视制作的应用不强调画面的真实性,只追求观赏性和趣味性,其中角色的运动可以有些虚幻,但绘制技术要求较

7、高,能模拟出各种真实感效果面向模拟的应用着眼于各种真实问题的仿真研究,它追求数据的正确性和结果的可信性以及能使各种以前仅能得到大批数据的科学试验可视化,这类动画对绘制效果没有前者要求的高。计算机动画主要的应用领域(1)影视制作(2)广告制作(3)教育领域中的辅助教学(4)科研领域(5)工业领域(6)视觉模拟(7)娱乐行业7.3 ActionScript简介7.3.1ActionScript概述7.3.2如何编辑ActionScript脚本7.3.1 ActionScript概述MacromediaFlashMX2004和FlashMXProfessional2004是具有专业水准的动画创作工具

8、,结合ActionScript2.0您可以开发出与用户的交互的web产品Flash MX 2004 ActionScript 特点:(1)ActionScript能够控制Flash动画的播放行为和对象的属性。(2)ActionScript是一种面向对象的编程语言,它的风格和JavaScript语言相类似。(3)ActionScript可以使用自定义函数。(4)支持XML和XMLSocket。ActionScript提供了XML和XMLSocket对象来和后台程序进行交互。7.3.2 如何编辑ActionScript脚本在Flash中要使用ActionScript有两种方式,一种是直接在Flas

9、h中写入ActionScript程序段,另一种是在Flash中包含引入*.as文件(脚本文件)。要在Flash中写入ActionScript程序,就要在“动作-帧面板”中进行编辑。 将新项目添加到脚本中:通过命令列表,以选择的方式添加。将新项目添加到脚本中:通过命令列表,以选择的方式添加。 查找:在脚本中查找对象。查找:在脚本中查找对象。 替换:在脚本中替换对象。替换:在脚本中替换对象。插插入入目目标标路路径径:用用于于在在脚脚本本中中插插入入目目标标路路径径。在在插插入入目目标标路路径径对对话话框框中中,用用户户在在文文本本框框中中输输入入路路径径,同同时时可可以以设设置置该该路路径径是是绝

10、对路径还是相对路径。绝对路径还是相对路径。 语法检查:检查用户输入的脚本是否存在语法错误。语法检查:检查用户输入的脚本是否存在语法错误。 自自动动套套用用格格式式:将将用用户户输输入入的的语语句句套套用用系系统统默默认认的的格格式式,主主要是缩进。要是缩进。 显示代码提示:显示输入命令的语法格式,以作提示用。显示代码提示:显示输入命令的语法格式,以作提示用。 脚脚本本参参考考:用用于于激激活活帮帮助助面面板板,用用户户可可以以从从中中获获取取所所选选中中命命令的帮助信息。令的帮助信息。 调调试试选选项项:在在选选定定的的脚脚本本处处插插入入断断点点或或删删除除断断点点,可可以以在在单单击击此此

11、按按钮钮出出现现的的下下拉拉菜菜单单中中选选择择相相应应选选项项,选选项项有有设设置置断断点点、删除断点、删除所有断点删除断点、删除所有断点3项。项。 视图选项:设置输入脚本语句的显示模式视图选项:设置输入脚本语句的显示模式,选项有查看选项有查看Esc快快捷键、查看行号、自动换行捷键、查看行号、自动换行3项。项。7.4 ActionScript语法规则7.4.1几个术语7.4.2语法规则7.4.3简单语法结构7.4.1 几个术语1.动动作作:动作是命令一个动画在播放时做某些事情的一些语句。例如,gotoAndPlay命令2. 事件事件:动画播放时发生的动作。例如,单击按钮3. 事件处理函数事件

12、处理函数:管理事件的特殊动作。4. 实实例例:实例是属于某个类的对象。类的每个实例均包含该类的所有属性和方法。5. 实实例例名名称称:是脚本中用来指向影片剪辑实例和按钮实例的唯一名称。例如,库中的元件名称可以是Counter,在动画中可将该元件的实例命令为Ct_mc。7.4.2 语法规则1. 注释:注释:“/”表示整行注释;“/*”到“*/”之间的是段落注释。2. 语句语句ActionScript中每个完整的语句以分号“;”结束使用大括号“”对多条语句进行组织形成一个语句块。如:on(release)_X=100;_Y=200;语法规则(续)3. 关键字关键字是有特殊含义的保留字。例如,roo

13、t就是一个关键字,那么我们就不能将给一个演员取名字叫root,2004中所有关键字表breakcaseclasscontinuedefaultdeletedynamicelseextendsforfunctiongetifimportimplementininstanceofinterfaceintrinsicnewprivatepublicreturnsetstaticswitchthistypeofvarvoidwhilewith语法规则(续)4. 常常量量:常量也就是常数。比如key是针对键盘的一个对象,key的属性都是常量,key.ENTER就代表回车键。5. 点点(.):它的作用通常

14、两个。第一,用来定位,如_root.mcs就是根影片级别上的一个演员mcs。第二,用来访问对象的属性、调用对象方法等。6. 函函数数:可以理解为完成特定任务的一段代码,可以向其传递参数并能够有返回值。有些函数由系统提供,你可以直接调用,例如,getProperty函数用于传送属性名和电影剪辑实例名,然后返回这些属性和值。getVersion函数返回当前正在播放动画的Flash播放器的版本。有些函数需要自己定义,然后才能调用。语法规则(续)7. 类类:可用于创建新对象类型的数据类型,比如,math就是个类。8. 构造函数:构造函数:用于定义类的属性和方法的函数。9. 标标识识符符:用于表示变量、

15、属性、对象、函数或方法的名称。给标识符取名字时,它的第一个字符必须是字母、下划线或美元符号,其后的字符除字母、下划线或美元符号外,还可以是数字字符。ActionScript中的标识符包括关键字对大小写敏感。表7.2是支持自动代码提示的后缀语法规则(续)10.路径路径:路径是为了正确引用Flash中的各个不同的对象,对对象进行定位。路径分为:绝对路径和相对路径。绝对路径就是从根开始。如,_root-MC1,相对路径以某对象做参照对应的路径。相对路径看自己层是this,上层的是_parent。表示路径时常用点运算符,如:引用对象MC2写成 _parent.MC2。 7.4.3 简单语法结构Acti

16、onScript的语法从整体上来看借鉴了许多面向对象语言的优点,和现在流行的C+/Java非常类似1判断句式判断句式2循环句式循环句式3. 控制循环控制循环1判断句式判断句式 ActionScript的判断句式和C+/Java等高级语言的几乎完全一致,其语法为:if(条件)条件为真时执行的语句else条件为假时执行的语句如:if(a5)trace(Thevalueofvariableaisbiggerthan5.);elsetrace(Thevalueofvariableaisnotbiggerthan5.);2循环句式循环句式在ActionScript中,共有三种循环句式,它们是:for(初

17、始化;条件;递进)循环体while(条件)循环体do循环体while(条件)(1)for循环for循环是最常用的循环方式,在它的括号中用分号隔开了三个部分如:for (i=1;i10;i+) trace(i);(2)While循环while循环,当条件成立时执行循环体中的语句,条件的判断在循环之前。如:i=1;while(i10)trace(i);i+;(3)dowhile循环dowhile循环,当条件成立时继续执行循环体中的语句,条件的判断在循环体之后,也就是说,循环体至少被执行一次(即使条件不成立,因为条件是在执行完循环体中的语句后才进行判断的)。如:i=1;dotrace(i);i+;w

18、hile(i10);3. 控制循环控制循环 在循环中,还可以使用break和continue两条指令,用来控制循环。(1)break中断循环执行后跳出循环执行循环外的语句。如:for(i=0;i100;i+)if(i=10)break;trace(i);(2)continue中断一次循环当前的循环被中断,回到循环的开始部分继续下一次循环。如:for(i=0;i100;i+)if(i=10)continue;trace(i);7.5 数据类型、变量、表达式和函数7.5.1数据类型7.5.2变量7.5.3运算符和表达式7.5.4函数7.5.1 数据类型ActionScript提供的数据类型有字符串

19、类型、布尔值类型、对象、影片剪辑、null类型、undefined类型1. 1. 字符串类型字符串类型字符串是诸如字母、数字和标点符号等字符的序列,一定要用单引号或者是双引号括起来。比如:”我喜欢Flash”是个字符串。两个字符串可以用串连接运算符“+”进行连接,如”我喜欢”+”flash”=”我喜欢flash”。另外,ActionScript还有一种特殊的字符,称为转义字符,用“”开始的表示的特殊字符,如“n”代表换行符。2. 2. 数值类型数值类型数值数据类型是双精度浮点数,是数学上的整数、实数,可以进行+、-、*、 等运算。3. 3. 布尔类型布尔类型布尔值是 true 或 false

20、中的一个。动作脚本也会在适当时将值 true 和 false 转换为 1 和 0,或者是成立不成立等。4. 4. 对象类型对象类型对象,就象一个“黑匣子”,里面有对象自己的“属性”和“方法”,“属性”就是它的特征,“方法”就是它可以做的事情,把属性和方法包装在一起就是个对象画sin曲线,就用到了Flash内置Math对象的sin方法。5. 5. MovieClipMovieClip影片剪辑是 Flash 应用程序中可以播放动画的元件。它是唯一引用图形元素的数据类型。6. 6. NullNull和和UndefinedUndefined空值数据类型只有一个值,即 null。此值意味着“没有值”,即

21、缺少数据。Undefined是未定义的数据类型,也只有一个值,即 undefined,它用于尚未分配值的变量。注意区别开。7.5.2 变量变量就是盛放数据的容器。每个容器可以放不同的数据,每个容器必须有个名字。根据变量的作用范围,即能够识别和引用该变量的区域,简单的叫作用域,变量有以下3种:1. 本地变量本地变量就是仅仅在所在的代码块中可用的变量。比如我们定义2个变量做循环变量,可以这样定义vari,j;,后面我们介绍的函数体内的变量一般是这个类型。2. 时间轴变量时间轴变量时间轴变量是可用于该时间轴上的任何脚本,应用时注意3点:一是用前要初始化,二是其他时间轴引用要加路径,三是只能是定义后的

22、时间轴应用。比如你在第10帧定义了变量varname=”张三”;,那么你想在第5帧调用name就是未定义的变量。3. 全局变量全局变量全局变量任何时间轴都可以使用的变量,不需要路径的。但仍然需要注意,在没有定义前的调用都是非法的。定义格式跟前面的2类变量不同,不能用var,必须加个_global,比如定义全局变量myname就应该这样:_global.myname;。7.5.3 运算符和表达式表达式是用于为变量赋值的,是由运算符和变量组成。表达式分三种类型:数值表达式、逻辑表达式和字符表达式。1. 数值运算符数值运算符操作符操作符操作名称操作名称结果类型结果类型+加加数值数值-减减数值数值*乘

23、乘数值数值/除除数值数值%取模运算(除后的余数)取模运算(除后的余数) 数值数值+加加1数值数值-减减1数值数值2. 比较运算符比较运算符 操作符操作符操作名称操作名称结果类型结果类型=等于等于布尔值布尔值大于大于布尔值布尔值=大于等于大于等于布尔值布尔值3. 字符串运算符字符串运算符+运算符在处理字符串将两个字符串操作数连接起来。比较运算符、=、和=在处理字符串时比较两个字符串,以确定哪一个字符串按字母数字顺序排在前面。4. 逻辑运算符逻辑运算符 操作操作操作的意义操作的意义&逻辑与逻辑与(相当于相当于and操作操作)|逻辑或逻辑或(相当于相当于or操作操作)!逻辑非逻辑非(相当于相当于no

24、t操作操作)5. 赋值运算符赋值运算符 操作说明=赋值+=加之后再赋值(x+=5相当于x=x+5)-=减之后再赋值(x+=test相当于x=x+test)*=乘之后再赋值(x*=10相当于x=x*10)%=取模之后再赋值(原理同上)/=除之后再赋值(原理同上)=位右移然后赋值(原理同上)=位右移多出部分补零然后赋值(原理同上)=位异或运算后赋值(原理同上)|=位或运算后赋值(原理同上)&=位与运算后赋值(原理同上6. 数组访问运算符数组访问运算符 可以使用数组访问运算符()来访问内置或自定义的动作脚本对象属性,包括影片剪辑的属性。对于数组可以动态地设置实例与变量。如varname=newArr

25、ay();name“mc”+i;中的表达式被求值,其结果在mc中计算过后被作为的名字变量使用。7.5.4 函数由一个或若干个变量按照一定的法则决定另一个变量的值,这种对应关系就叫做函数。2004提供了5种类型的系统函数,它们分别是通用函数、数值类函数、字符串类函数。1. 通用函数通用函数eval:获取某一变量的值,或者是返回某一对象。GetTimer:获取计算机的系统时间。False:获得布尔非值。True:获得布尔真值。2. 数值类函数数值类函数int:把十进制数值强制转换成整数,即取整。Random:产生0到用户指定的数之间的随机数。3. 字符串类函数字符串类函数substring:截取字

26、符串中的子串。Length:返回字符串的长度。Ord:将字符转换成ASCII码。Chr:将ASCII码转换成相应字符。mbsubstring:截取多字节字符串中的子串。Mblength:返回多字节字符串的长度。Mbord:将多字节字符转换成相应ASCII码。Mbchr:将ASCII码转换成相应多字节字符。7.6 一般对象属性在Flash中,常用到的对象都是图形元件(GraphicsSymbol)或影片剪辑(MovieClip)等物件实例化(Instance)后形成的。这种对象的数据类型属于前面所讲的实例型。由于都是实例型对象,所以其原型(ProtoType)是一样的。它们从同一个原型处继承相同

27、的属性和方法。所以对于这些对象来说,它们有着许多共同的基础属性和方法。实例型对象所共有的属性的列表属性名属性名定定 义义_alpha透明度,以百分比的形式表示,透明度,以百分比的形式表示,100%为不透明,为不透明,0%为透明为透明_currentframe当前当前MovieClip实例所播放的帧序号实例所播放的帧序号_droptarget返回最后一次被鼠标拖曳的返回最后一次被鼠标拖曳的MovieClip或或GraphicsSymbol实例的名称实例的名称_focusrect当当使使用用Tab键键切切换换焦焦点点时时,按按钮钮符符号号实实例例是是否否显显示示黄黄色色的的外外框框,默默认认显示黄

28、色的外框,当设置为显示黄色的外框,当设置为0时,将以按钮符号的时,将以按钮符号的Up姿态来显示姿态来显示_framesloaded当前已经有多少帧动画被下载到了用户的客户端当前已经有多少帧动画被下载到了用户的客户端_heightMovieClip或或GraphicsSymbol实例的高度,以像素为单位实例的高度,以像素为单位_highqualityFlash动画的显示质量设置:动画的显示质量设置:1为低,为低,2为高,为高,3为最好为最好_name返回返回MovieClip或或GraphicsSymbol实例的名称实例的名称_quality返回当前返回当前Flash动画的播放质量动画的播放质量

29、_rotationMovieClip或或GraphicsSymbol实例相对于垂直方向旋转的角度实例相对于垂直方向旋转的角度_soundbuftimeFlash中中的的声声音音在在播播放放之之前前要要经经过过预预下下载载然然后后播播放放,这这个个属属性性说说明明预预下载的时间下载的时间实例型对象所共有的属性的列表(续)_target用用于于指指定定MovieClip或或GraphicsSymbol符符号号实实例例精精确确的的字字符符串串,在在使使用用tellTarget时常用到时常用到_totalframes返回整个动画或返回整个动画或MovieClip或或GraphicsSymbol实例在时

30、间线上所有帧的数量实例在时间线上所有帧的数量_url返回该返回该.swf文件的完整路径名称文件的完整路径名称_visible设置设置MovieClip或或GraphicsSymbol实例是否显示,实例是否显示,1为显示,为显示,0为隐藏为隐藏_widthMovieClip或或GraphicsSymbol实例的宽度,以像素为单位实例的宽度,以像素为单位_xMovieClip或或GraphicsSymbol实实例例的的中中心心点点与与其其所所在在舞舞台台的的最最左左侧侧之之间间的的水水平平距距离离,MovieClip或或GraphicsSymbol实实例例在在移移动动的的时时候候,会会动动态态地地

31、改改变变这这个个值值,单单位是像素位是像素_xmouse返回鼠标指针相对于舞台最左侧的水平距离返回鼠标指针相对于舞台最左侧的水平距离_xscaleMovieClip或或GraphicsSymbol实例相对于其原样的实际宽度的百分比实例相对于其原样的实际宽度的百分比_yMovieClip或或GraphicsSymbol实实例例的的中中心心点点与与其其所所在在舞舞台台的的最最上上端端之之间间的的垂垂直直距距离离,MovieClip或或GraphicsSymbol实实例例在在移移动动的的时时候候,会会动动态态地地改改变变这这个个值值,单单位是像素位是像素_ymouse返回鼠标指针相对于舞台最上端的垂

32、直距离返回鼠标指针相对于舞台最上端的垂直距离_yscale电影片断符号实例相对于其原样的实际高度的百分比电影片断符号实例相对于其原样的实际高度的百分比7.7 常用交互动作命令在在2004中中,可可用用的的ActionScript命命令令已已超超过过了了1000条条,下下面面介介绍绍一一些些最最常常用用的的命命令。令。 1trace(expression);当调试一个动画的时候,trace动作会把要调试的语句的结果在输出窗口中输出。在调试的时候使用trace,能够在输出窗口记录下所要得到的信息或是检查中间变量的值的变化情况。trace动作和JavaScript中的alert函数非常相似。参数ex

33、pression是要输出的值、变量或者表达式。例如:trace(i);/输出变量i的值trace(abcdef);/输出字符串“abcdef”trace(a+b-c);/输出表达式a+bc的值2gotoAndPlay(scene,frame);跳转到指定帧并继续播放。scene参数是可选项,指定要跳转到的场景,如果不使用,则默认为当前场景。frame参数指定了要跳转到的帧在场景中的序号。如:gotoAndPlay(5);/跳到第5帧并继续播放3gotoAndStop(scene,frame);跳转到指定帧并停止播放。scene参数是可选项,指定要跳转到的场景,如果不使用,则默认为当前场景。fr

34、ame参数指定了要跳转到的帧在场景中的序号。如:gotoAndStop(5);/跳到第5帧并停止4. on(mouseEvent) statement;按钮事件命令On表示当鼠标执行某种动作时,将触发其他动作的执行。命令参数statement是mouseEvent事件激活后要执行的程序段。mouseEvent可以是下列参数:press:鼠标在按钮上时左键被按下。release:鼠标在按钮上时左键被松开。releaseOutside:鼠标不在按钮上时左键被松开。rollOver:鼠标滑过按钮。rollOut:鼠标从按钮上移出。dragOver:鼠标在按钮上时左键被按下,按住后鼠标移出按钮范围,然

35、后又移回到按钮上。dragOut:鼠标在按钮上时左键被按下,按住后鼠标移出按钮范围。keyPress:(“key”)指定的键被按下。在下面的例子中,当鼠标左键在按钮上被按下时会激活startDrag动作:on(press)startDrag(_root.MC1);5play();开始播放动画或者MovieClip,是从当前位置开始播放。如果影片由于使用stop或gotoAndstop命令而停止,那么只能使用该命令才能重新播放。播放命令格式为play(),该命令没有参数。如:this.play();/开始播放当前的MovieClip6stop();停止播放动画或MovieClip停止命令格式为s

36、top();如:this.stop();/停止播放当前的MovieClip7stopAllSounds();停止播放所有的声音,该命令没有参数。下列代码实现了当鼠标单击对象时,停止播放所有的声音:on(release)stopAllSounds();8startDrag(targat ,lock,left,top,right,bottom);开始用鼠标拖动MovieClip或GraphicSymbol对象。参数targat是要拖曳的对象,lock参数用来确定是否锁定中心拖曳,参数left,top,right,bottom是拖曳的范围的坐标。在这里,lock和left,top,right,bot

37、tom参数都是可选的。如 : startDrag(_root.MC1);/开 始 拖 动_root.MC1对象9stopDrag(target);停 止 用 鼠 标 拖 动 MovieClip或 GraphicSymbol对象。参数targat是被拖曳的对象。如:stopDrag(_root.MC1); /停止拖动_root.MC1对象10fscommand (command,arguments);对Flash播放器下达指令以及向JavaScript传递参数。command参数待实现Flash播放器所下的指令,arguments参数则是下达指令的参数。fscommand具体的指令和参数命令表命

38、令参数使用说明allowscaletrue/false设置true后,播放器将以1:1的大小播放动画,也就是说播放器的窗口变小则动画也变小相同的比例。设置false,动画将保持原有的大小,不管播放器窗口如何变化Exec应 用 程序 的 路径将参数设置成一个外部应用程序的文件名,播放器将执行外部应用程序fullscreentrue/false设置true后,动画将全屏播放,设置false后,动画播放器将回到窗口播放模式QuitNone关闭播放程序showmenutrue/false设置true后,在播放器中,点击鼠标右键,将显示控制菜单,设置false后,将不会显示控制菜单trapallkeys

39、true/false设置true后,播放器将屏蔽热键,设置false后,播放器将使热键有效11. setProperty(target, property, value/expression);对象属性设置命令setProperty用于设置指定的实例对象中属性的值。三个参数的含义是:参数target是目标对象,property是要设置的属性,value/expression是要设定的属性的值,它可以是一个值或是一个表达式。如:单击鼠标后,设定MC1对象的不透明度为30%。on(release)setProperty(_root.MC1,_alpha,30);12. getProperty(ta

40、rget, property);对象属性获取命令getProperty用于获取指定的实例对象中属性的值。二个参数的含义是:参数target是目标对象,property是要获取的属性。如:单击鼠标后,获取MC1对象的不透明度,并在输出窗口显示。on(release)alph=getProperty(_root.MC1,_alpha);trace(alph);13. tellTarget(target)通知目标命令tellTarget用于通知目标对象,然后进行其他的一些动作。该命令的参数只有一个,指定被通知对象的实例名称。如:下列单击鼠标事件,实现的是通知时间上的ball影片剪辑,从第2帧开始播放

41、。on(release)tellTarget(ball)gotoAndPlay(2);14. onClipEvent(movieEvent) . 影片剪辑事件命令onClipEvent表示当某种动作发生时,将触发影片剪辑元件的其他动作。参数movieEvent是影片剪辑元件可以响应的任何动作,有以下几个:load:电影剪辑实体在时间轴(timeline)中出现时激活事件。unload:电影剪辑实体在时间轴(timeline)中卸载后的第一帧时激活事件,在这一帧里,unload比其他任何事件都要优先响应。enterFrame:在播放到某一帧时激活事件。mouseMove:只要鼠标移动就激活事件。

42、使用_xmouse和_ymouse属性能够确定当前鼠标的坐标。mouseDown:鼠标左键按下时激活事件。mouseUp:鼠标左键松开时激活事件。keyDown:当某一键被按下时激活事件。使用Key.getCode方法可以获得最后一个被按下的键的信息。keyUp:当某一键被松开时激活事件。使用Key.getCode方法可以获得最后一个被按下的键的信息。data:在loadVariables或loadMovie动作读入数据时激活事件。当指定了一个loadVariables动作后,data事件只在读入最后一个变量时响应一次。当指定了一个loadMovie动作后,data事件会每读入一段数据就响应一

43、次,直到把数据全部载入。如:下面的代码将在加载电影剪辑的时候读入外部的Script程序文件:onClipEvent(load)#includemyScript.as再如:在下面的代码中,onClipEvent使用了keyDown事件和key.getCode。keyDown事件经常和一个或几个Key对象的方法或属性连用;key.getCode被用来获取浏览者最后一次按下的键的键值,然后再和Key对象的RIGHT和LEFT属性做比较来执行不同的程序:onClipEvent(keyDown)if(Key.getCode()=Key.RIGHT)_parent.nextFrame();elseif(K

44、ey.getCode()=Key.LEFT)_parent.prevFrame();再如:在下面的代码中,onClipEvent使用mouseMove事件,同时使用_xmouse和_ymouse属性获取鼠标当前的坐标值,并在输出窗口显示:onClipEvent(mouseDown)trace(_root._xmouse);trace(_root._ymouse);15. set(variable, value);对象变量设置命令set用于先声明一个变量,然后为此变量赋值。两个参数,其含义是,参数variable指要声明的变量名或要更新的变量名;参数value指要赋给变量的具体数值。如:下列代码

45、实现单击鼠标后,先获得一个名为ship的影片剪辑对象的x轴坐标值,然后赋给声明的变量xx。on(release)set(“xx”,getProperty(“ship”,_x);16RemoveMovieClip(target);删除由duplicateMovieClip,attachMovie或duplicateMovie方法创建的影片剪辑或图形元件对象。参数target是由duplicateMovieClip创建的目标影片剪辑或图形元件对象名,或是由attachMovie或duplicateMovie方法创建的影片剪辑或图形元件对象的实体名。17updateAfterEvent(moviec

46、lipevent);当参数中指定的动作发生后,刷新屏幕(取决于动画设当参数中指定的动作发生后,刷新屏幕(取决于动画设定中的每秒播放帧数项)。定中的每秒播放帧数项)。在在 drag 动作中同时使用鼠标移动来激活动作中同时使用鼠标移动来激活 updateAfterEvent,刷新屏幕将不会造成屏幕的闪烁。刷新屏幕将不会造成屏幕的闪烁。参数参数movieclipevent可以指定为下列的一个值作为参数:可以指定为下列的一个值作为参数:mouseMove:判断鼠标是否移动,使用判断鼠标是否移动,使用 _xmouse 和和 _ymouse 属性能够确定当前鼠标的坐标。属性能够确定当前鼠标的坐标。mous

47、eDown:判断鼠标左键是否按下。判断鼠标左键是否按下。mouseUp:判断鼠标左键是否松开。判断鼠标左键是否松开。keyDown:判断某一键是否被按下,使用判断某一键是否被按下,使用 Key.getCode 方法能够获得最后一个被按下的键的信息。方法能够获得最后一个被按下的键的信息。keyUp:判断某一键是否被松开,使用判断某一键是否被松开,使用 Key.getCode 方方法能够获得最后一个被按下的键的信息。法能够获得最后一个被按下的键的信息。18. getURL(url , window , method );获取URL路径命令getURL用于将指定的URL加载到浏览器窗口和将变量数据发

48、送给指定的URL。参数含义是,url获取文档的URL,window可选,指定文档应加载窗口或HTML框架,可输入特定窗口的名称,或从下面的保留目标名称中选择:_self:指定当前窗口中的当前框架。_blank:指定一个新窗口。_parent:指定当前框架的父级。_top:指定当前窗口中的顶级框架。method用于发送变量的GET或POST方法。如:将一个新URL加载到空浏览器窗口中。on(release)getURL(,_blank);【例7.1】利用交互命令gotoAndPlay、gotoAndStop及按钮事件命令为随书配套光盘“素材第4章植物图片”文件夹中的图片像制作相册,方便用户翻看。

49、7.8 内置类Flash中使用的类可以分二种,一个是系统提供的,我们直接就可以调用的,叫内置类,一个是我们在使用前必须自己先创建的,叫自定义类。7.8.1内置类的分类7.8.2常用内置类简介7.8.1 内置类的分类内置类分二种:核心类和FlashPlayer专用类。1. 十一个核心类十一个核心类 类名类名简单说明简单说明 Arguments包含作为参数传递给任何函数的值的数组包含作为参数传递给任何函数的值的数组 Array Array类提供用于处理数组对象的方法和属性。类提供用于处理数组对象的方法和属性。 Boolean(布尔值)布尔值)Boolean 类是布尔值(类是布尔值(true 或或

50、false)的包装。的包装。 Button(按钮)按钮) Button 类提供用于处理按钮对象的方法和属性。类提供用于处理按钮对象的方法和属性。 Date(日期)日期)使使用用 Date 类类可可以以访访问问相相对对于于通通用用时时间间(格格林林尼尼治治标标准准时时间间),或相对于运行或相对于运行 Flash Player 的操作系统的日期和时间值。的操作系统的日期和时间值。Error(错误)错误) Error 类包含关于脚本中出现的错误的信息。类包含关于脚本中出现的错误的信息。Function(函数)函数) Function 类类是是所所有有动动作作脚脚本本函函数数(包包括括动动作作脚脚本本

51、的的固固有有函函数数和和您定义的函数)的类表示形式。您定义的函数)的类表示形式。 MathMath 类类用用于于访访问问和和处处理理数数学学常常量量和和函函数数。Math 类类的的所所有有属属性性和方法都是静态的和方法都是静态的Number(数字)数字) Number 类是原始数字数据类型的包装。类是原始数字数据类型的包装。 Object(对象)对象) Object 类类位位于于动动作作脚脚本本类类层层次次结结构构的的根根部部;其其它它所所有有类类均均继继承承其方法和属性。其方法和属性。 String(字符串)字符串) String 类类是是字字符符串串原原始始数数据据类类型型的的包包装装,它

52、它使使您您能能够够使使用用 对对象象的方法和属性处理原始字符串值类型。的方法和属性处理原始字符串值类型。 2. Flash Player 专用类专用类它是FlashPlayer和Flash运行时模型的专用类。分为四个类别:影片类、媒体类、客户端/服务器类和创作类,这个分类其实就是【动作工具箱】中的各个属性和方法的放置顺序的依据。具体介绍略7.8.2 常用内置类简介1. String类类String类对象用于替代以前使用的字符串类型。String类对象的创建方法是通过new运算符进行,如:varmy_str=newString();命名时加了个_str,是String类对象名的常用后缀,在录入时

53、有代码提示,如果你不加这样的后缀你最好还是加上:String,这样也会出现代码提示的。String对象的属性:String.length表示指定String对象中的字符数,即串长。String对象的方法方法说明String.charAt()返回字符串中特定位置处的字符。String.charCodeAt()返回指定索引处字符的值,此值为介于0到65535之间的一个16位整数。String.concat()合并两个字符串的文本,并返回一个新字符串。String.fromCharCode()返回由参数中指定的字符组成的字符串。String.indexOf()返回指定子字符串的第一个匹配项的位置。S

54、tring.lastIndexOf()返回指定子字符串的最后一个匹配项的位置。String.slice()提取字符串的一部分,并返回一个新字符串。String.split()通过将字符串分隔为子字符串,从而将String对象拆分为字符串数组。【例7.2】使用String类,制作具有文字打字机效果的动画。单击时间轴第1帧,添加代码:2. Number类类Number类对象用于替代以前使用的数值类型。Number类对象的创建方法是通过new运算符进行,如:varmynum=newNumber();也可以直接的把些数字赋给它varmynum=newNumber(56);(1)Number 类的属性N

55、umber.MAX_VALUE:表示最大可表示数(双精度IEEE-754标准)的常量。此数字大约为1.79E+308。Number.MIN_VALUE:表示最小可表示数(双精度IEEE-754标准)的常量。此数字大约为5e-324。Number.NaN:表示“非数字”(NaN)值的常量。Number.NEGATIVE_INFINITY:表示负无穷大值的常量。Number.POSITIVE_INFINITY:表示正无穷大值的常量。此值等同于全局变量Infinity。(2)Number 类的方法Number.toString():返回Number对象的字符串表示形式。Number.valueOf(

56、):返回Number对象的原始值。在上面这些中Number.toString()很有用,它的参数是进制基数(从2到36),返回的是个字符串。如:myNumber=newNumber(255);trace(myNumber.toString(2);trace(myNumber.toString(8);trace(myNumber.toString(16);3. Array类类Array类即数组类,实际使用较多。用new运算符创建Array类对象实例的方法有以下几种:varstuname:Array=newArray(4);/指定数目varstuname:Array=newArray();/未指定

57、数目var stuname:Array=new Array(张三,李四,王五);/创建并赋值也可以用运算符创建数组。是数组访问运算符,用它可以创建、赋值、动态访问数组等等上面的例子我们也可以这样写:varstuname:Array=;varstuname:Array=张三,李四,王五;数组元素的引用数组元素的引用需要数组访问运算符,数组元素引用格式:数组名索引即数组名字再加个索引下标就是数组元素比如stname0是第一个元素、stname1是第二个元素、stname2是第三个元素。这个索引就标识了他们的位置,一定注意,索引从0开始的。为数组元素赋初值创建了Array类对象以后,可以为数组元素赋

58、初值,称为数组的初始化。如:varstname:Array=newArray();stname0=张三;stname2=李四;跟普通变量的赋值是一样的。但如果你没有第一个varstname:Array=newArray();就是错误的。另外,用字符做索引值有时会很有用。如:my_Array=newArray();my_Arrayone=张三;my_Arraytwo=李四;trace(my_Arraytwo);/李四数组对象的属性数组对象的属性:Array.length指定数组中元素数量。比如:varmymc=;trace(mymc.length);/结果0mymc.length=98;trac

59、e(mymc.length);/结果984. Date类类Date类对象类似于以前使用的日期类型。Date类对象的创建方法有:varmy_date=newDate();varmy_date=newDate(2004,9,12);/创建的同时赋初值注意:年:0-99:代表1900-1999,其他写全4位,比如2003月:0-11:代表1月-12月,所以你写2代表的是3月小时:从0(午夜)到23(深夜11点)之间的整数在flash制作中有许多与时间和日期有关的应用,比如万年历、下载时间、时钟以及让用户录入生日、登陆时间等等,就要用到Date类的对象。 Date类对象常用方法 方法说明Date.ge

60、tDate()按照本地时间返回某天是当月的第几天。(1至31)Date.getDay()按照本地时间返回某天是周几。(0代表星期日,1代表星期一,依此类推)Date.getFullYear()按照本地时间返回4位数字的年份数。Date.getHours()按照本地时间返回小时值。0至23之间的整数Date.getMilliseconds()按照本地时间返回毫秒值。一个0至999之间的整数Date.getMinutes()按照本地时间返回分钟值。0至59之间的整数Date.getMonth()按照本地时间返回月份数。Date.getSeconds()按照本地时间返回秒数。Date.getTime

61、()返回自1970年1月1日午夜(通用时间)以来的毫秒数。【例7.3】本例要求运用Date类及setProperty等函数,制作时钟动画。5. Math类类Math类是一个顶级类,不必使用构造函数即可使用其方法和属性。使用该类的方法和属性可以访问和处理数学常数和函数。Math类的所有属性和方法都是静态的,并且必须使用语法Math.method(parameter)或Math.constant来调用。有几个Math类的方法使用角的弧度作为参数。可以用下面的等式来计算弧度值:radian=Math.PI/180*degree/degree为角度值如,计算一个45度角的正弦值:Math.sin(Ma

62、th.PI/180*45);Math类的属性和方法从略6. Color类类通过Color类,您可以设置影片剪辑的RGB颜色值和颜色转换,并可以在设置后获取这些值。必须使用构造函数newColor()创建Color对象后,才可调用其方法。Color类的构造函数的用法:newColor(target)/target为影片剪辑的实例名称。Color类的属性和方法 方法方法说明说明Color.getRGB()返返回回由由最最后后一一次次setRGB() 调调用用设设置置的的RGB 数值。数值。Color.getTransform()返返回回由由最最后后一一次次setTransform() 调调用用设设

63、置的转换信息。置的转换信息。Color.setRGB()为为Color 对对象象设设置置RGB 值值的的十十六六进进制制表表示形式。示形式。Color.setTransform()为为Color 对象设置颜色转换。对象设置颜色转换。7. Sound 类类Sound类可以让用户控制影片中的声音。可以在影片正在播放时从库中向该影片剪辑添加声音,并控制这些声音。如果在创建新Sound对象时没有指定target,则可以使用Sound的方法控制整个影片的声音。在调用Sound类的方法之前,您必须使用构造函数newSound创建Sound对象。Sound对象的属性、方法和事件处理函数从略8. Mouse

64、类类Mouse类是不通过构造函数即可访问其属性和方法的顶级类。可以使用Mouse类的方法来隐藏和显示SWF文件中的鼠标指针(光标)。默认情况下鼠标指针是可见的,但是您可以将其隐藏并实现用影片剪辑创建的自定义指针Mouse 类的方法 方法方法说明说明Mouse.addListener()注注 册册 一一 个个 对对 象象 以以 接接 收收 onMouseDown、onMouseMove 和和onMouseUp 通知。通知。Mouse.hide()隐藏隐藏SWF 文件中的鼠标指针。文件中的鼠标指针。Mouse.removeListener()删除用删除用addListener() 注册的对象。注册

65、的对象。Mouse.show()在在SWF 文件中显示鼠标指针。文件中显示鼠标指针。Mouse.onMouseDown按下鼠标按钮时获得通知。按下鼠标按钮时获得通知。Mouse.onMouseMove移动鼠标按钮时获得通知。移动鼠标按钮时获得通知。Mouse.onMouseUp释放鼠标按钮时获得通知。释放鼠标按钮时获得通知。Mouse.onMouseWheel当用户滚动鼠标滚轮时获得通知。当用户滚动鼠标滚轮时获得通知。9. key 类类Key类是不通过构造函数即可使用其方法和属性的顶级类。使用Key类的方法可生成用户能够通过标准键盘控制的界面。Key类的属性是常量,表示所使用的键盘按键。Key

66、 类的方法方法方法说明说明Key.addListener()注注 册册 一一 个个 对对 象象 , 以以 便便 在在 调调 用用 onKeyDown 和和onKeyUp 方法时接收通知。方法时接收通知。Key.getAscii()返回按下的最后一个键的返回按下的最后一个键的ASCII 值。值。Key.getCode()返回按下的最后一个键的虚拟键控代码。返回按下的最后一个键的虚拟键控代码。Key.isDown()当按下参数中指定的键时返回当按下参数中指定的键时返回true。Key.isToggled()当激活当激活Num Lock 键或键或Caps Lock 键时返回键时返回true。Key.

67、removeListener()删除以前用删除以前用Key.addListener() 注册的对象。注册的对象。 如,以下脚本使用户可以使用键盘方向键控制影片剪辑的位置。onClipEvent(enterFrame)if(Key.isDown(Key.RIGHT)this._x=_x+10;elseif(Key.isDown(Key.DOWN)this._y=_y+10;7.9 综合实例彩色泡泡动画星星紧随鼠标转动动画【例7.4】利用duplicateMovieClip复制movieclip,用setProperty与random函数所取的随机数决定复制出的movieclip的位置,利用newColor,setRGB与random函数来随机决定复制出的movieclip的颜色来制作有趣的彩色泡泡动画。【例7.5】在FlashMX中鼠标的跟踪的制作方法有很多种。本例要求运用startDrag、setProperty、duplicateMovieClip等函数,制作一种可以有多种变化方式的鼠标跟踪。让星星紧随你的鼠标转动。vara=0;varb=0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号