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

上传人:小飞机 文档编号:5934165 上传时间:2023-09-06 格式:PPT 页数:127 大小:968KB
返回 下载 相关 举报
动画制作与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.3 ActionScript简介7.4 ActionScript语法规则7.5 数据类型、变量、表达式和函数7.6 一般对象属性7.7 常用交互动作命令7.8 内置类7.9 综合实例,动画制作指的是用计算机生成一系列可供实时演播的连续画面的技术,即所谓的计算机动画技术 计算机动画是使用计算机作为工具来产生动画的技术,7.1 计算机动画研究的内容,1.运动控制方法2.动画描述模型与动画语言3.中间画面的生成技术4.三维动画中物体造型技术5.动画绘制技术,运动控制方法,计算机动画中用于控制动画物体随时间而

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

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

4、察脚本的设计效果,目前大多数实用的动画系统都提供了图形形式动画语言支持可视的设计方式,这种语言将动画中场景的表示、编辑、表现同时显示在屏幕上。,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.1 ActionScript概述7.3.2 如何编辑ActionScript脚本,7.3.1 ActionScript概述,Macromedia Flash MX 2004 和 Flash MX Professional 2004 是具有专业水准的动画创作工具,结合ActionScript 2.0您可以开发出与用户的交互的web产品,F

8、lash MX 2004 ActionScript 特点:,(1)ActionScript能够控制Flash动画的播放行为和对象的属性。(2)ActionScript 是一种面向对象的编程语言,它的风格和JavaScript语言相类似。(3)ActionScript可以使用自定义函数。(4)支持XML和XMLSocket。ActionScript提供了XML和XMLSocket对象来和后台程序进行交互。,7.3.2 如何编辑ActionScript脚本,在Flash中要使用ActionScript有两种方式,一种是直接在Flash中写入ActionScript程序段,另一种是在Flash中包含

9、引入*.as文件(脚本文件)。要在Flash中写入ActionScript程序,就要在“动作-帧面板”中进行编辑。,将新项目添加到脚本中:通过命令列表,以选择的方式添加。查找:在脚本中查找对象。替换:在脚本中替换对象。插入目标路径:用于在脚本中插入目标路径。在插入目标路径对话框中,用户在文本框中输入路径,同时可以设置该路径是绝对路径还是相对路径。语法检查:检查用户输入的脚本是否存在语法错误。自动套用格式:将用户输入的语句套用系统默认的格式,主要是缩进。显示代码提示:显示输入命令的语法格式,以作提示用。脚本参考:用于激活帮助面板,用户可以从中获取所选中命令的帮助信息。调试选项:在选定的脚本处插入

10、断点或删除断点,可以在单击此按钮出现的下拉菜单中选择相应选项,选项有设置断点、删除断点、删除所有断点3项。视图选项:设置输入脚本语句的显示模式,选项有查看Esc快捷键、查看行号、自动换行3项。,7.4 ActionScript语法规则,7.4.1 几个术语7.4.2 语法规则7.4.3 简单语法结构,7.4.1 几个术语,动作:动作是命令一个动画在播放时做某些事情的一些语句。例如,gotoAndPlay命令2.事件:动画播放时发生的动作。例如,单击按钮3.事件处理函数:管理事件的特殊动作。4.实例:实例是属于某个类的对象。类的每个实例均包含该类的所有属性和方法。5.实例名称:是脚本中用来指向影

11、片剪辑实例和按钮实例的唯一名称。例如,库中的元件名称可以是Counter,在动画中可将该元件的实例命令为Ct_mc。,7.4.2 语法规则,1.注释:“/”表示整行注释;“/*”到“*/”之间的是段落注释。2.语句ActionScript中每个完整的语句以分号“;”结束使用大括号“”对多条语句进行组织形成一个语句块。如:on(release)_X=100;_Y=200;,语法规则(续),3.关键字是有特殊含义的保留字。例如,root就是一个关键字,那么我们就不能将给一个演员取名字叫root,,2004中所有关键字表,语法规则(续),4.常量:常量也就是常数。比如key是针对键盘的一个对象,ke

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

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

14、rent.MC2。,7.4.3 简单语法结构,ActionScript的语法从整体上来看借鉴了许多面向对象语言的优点,和现在流行的C+/Java非常类似 1判断句式 2循环句式 3.控制循环,1判断句式,ActionScript的判断句式和C+/Java等高级语言的几乎完全一致,其语法为:if(条件)条件为真时执行的语句 else 条件为假时执行的语句如:if(a5)trace(The value of variable a is bigger than 5.);else trace(The value of variable a is not bigger than 5.);,2循环句式,在

15、ActionScript中,共有三种循环句式,它们是:for(初始化;条件;递进)循环体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循环,当条件成立时继续执行循环体中的语句,条件的判断在循环体之后,也就是说,循环体至少被执行一次(即使条件不成立,因为条件是在执行

16、完循环体中的语句后才进行判断的)。如:i=1;do trace(i);i+;while(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 运算符和表达式

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

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

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

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

21、符串时比较两个字符串,以确定哪一个字符串按字母数字顺序排在前面。,4.逻辑运算符,5.赋值运算符,6.数组访问运算符,可以使用数组访问运算符()来访问内置或自定义的动作脚本对象属性,包括影片剪辑的属性。对于数组可以动态地设置实例与变量。如var name=new Array();name“mc”+i;中的表达式被求值,其结果在mc中计算过后被作为的名字变量使用。,7.5.4 函数,由一个或若干个变量按照一定的法则决定另一个变量的值,这种对应关系就叫做函数。2004提供了5种类型的系统函数,它们分别是通用函数、数值类函数、字符串类函数。,1.通用函数,eval:获取某一变量的值,或者是返回某一对

22、象。GetTimer:获取计算机的系统时间。False:获得布尔非值。True:获得布尔真值。,2.数值类函数,int:把十进制数值强制转换成整数,即取整。Random:产生0到用户指定的数之间的随机数。,3.字符串类函数,substring:截取字符串中的子串。Length:返回字符串的长度。Ord:将字符转换成ASCII码。Chr:将ASCII码转换成相应字符。mbsubstring:截取多字节字符串中的子串。Mblength:返回多字节字符串的长度。Mbord:将多字节字符转换成相应ASCII码。Mbchr:将ASCII码转换成相应多字节字符。,7.6 一般对象属性,在Flash中,常用

23、到的对象都是图形元件(Graphics Symbol)或影片剪辑(Movie Clip)等物件实例化(Instance)后形成的。这种对象的数据类型属于前面所讲的实例型。由于都是实例型对象,所以其原型(ProtoType)是一样的。它们从同一个原型处继承相同的属性和方法。所以对于这些对象来说,它们有着许多共同的基础属性和方法。,实例型对象所共有的属性的列表,实例型对象所共有的属性的列表(续),7.7 常用交互动作命令,在2004中,可用的ActionScript命令已超过了1000条,下面介绍一些最常用的命令。,1trace(expression);,当调试一个动画的时候,trace 动作会把

24、要调试的语句的结果在输出窗口中输出。在调试的时候使用 trace,能够在输出窗口记录下所要得到的信息或是检查中间变量的值的变化情况。trace 动作和 JavaScript 中的 alert 函数非常相似。参数expression是要输出的值、变量或者表达式。例如:trace(i);/输出变量i的值trace(abcdef);/输出字符串“abcdef”trace(a+b-c);/输出表达式a+bc的值,2gotoAndPlay(scene,frame);,跳转到指定帧并继续播放。scene参数是可选项,指定要跳转到的场景,如果不使用,则默认为当前场景。frame参数指定了要跳转到的帧在场景中

25、的序号。如:gotoAndPlay(5);/跳到第5帧并继续播放,3gotoAndStop(scene,frame);,跳转到指定帧并停止播放。scene参数是可选项,指定要跳转到的场景,如果不使用,则默认为当前场景。frame参数指定了要跳转到的帧在场景中的序号。如:gotoAndStop(5);/跳到第5帧并停止,4.on(mouseEvent)statement;,按钮事件命令On表示当鼠标执行某种动作时,将触发其他动作的执行。命令参数statement是mouseEvent 事件激活后要执行的程序段。mouseEvent 可以是下列参数:press:鼠标在按钮上时左键被按下。relea

26、se:鼠标在按钮上时左键被松开。releaseOutside:鼠标不在按钮上时左键被松开。,rollOver:鼠标滑过按钮。rollOut:鼠标从按钮上移出。dragOver:鼠标在按钮上时左键被按下,按住后鼠标移出按钮范围,然后又移回到按钮上。dragOut:鼠标在按钮上时左键被按下,按住后鼠标移出按钮范围。keyPress:(“key”)指定的键被按下。在下面的例子中,当鼠标左键在按钮上被按下时会激活 startDrag 动作:on(press)startDrag(_root.MC1);,5play();,开始播放动画或者Movie Clip,是从当前位置开始播放。如果影片由于使用stop

27、或gotoAndstop命令而停止,那么只能使用该命令才能重新播放。播放命令格式为play(),该命令没有参数。如:this.play();/开始播放当前的Movie Clip,6stop();,停止播放动画或Movie Clip停止命令格式为stop();如:this.stop();/停止播放当前的Movie Clip,7stopAllSounds();,停止播放所有的声音,该命令没有参数。下列代码实现了当鼠标单击对象时,停止播放所有的声音:on(release)stopAllSounds();,8startDrag(targat,lock,left,top,right,bottom);,开

28、始用鼠标拖动MovieClip或Graphic Symbol对象。参数targat 是要拖曳的对象,lock参数用来确定是否锁定中心拖曳,参数left,top,right,bottom是拖曳的范围的坐标。在这里,lock和left,top,right,bottom参数都是可选的。如:startDrag(_root.MC1);/开始拖动_root.MC1对象,9stopDrag(target);,停止用鼠标拖动MovieClip或Graphic Symbol对象。参数targat 是被拖曳的对象。如:stopDrag(_root.MC1);/停止拖动_root.MC1对象,10fscommand

29、(command,arguments);,对Flash播放器下达指令以及向JavaScript传递参数。command参数待实现Flash播放器所下的指令,arguments参数则是下达指令的参数。,fscommand具体的指令和参数命令表,11.setProperty(target,property,value/expression);,对象属性设置命令setProperty用于设置指定的实例对象中属性的值。三个参数的含义是:参数target是目标对象,property是要设置的属性,value/expression是要设定的属性的值,它可以是一个值或是一个表达式。如:单击鼠标后,设定MC1

30、对象的不透明度为30%。on(release)setProperty(_root.MC1,_alpha,30);,12.getProperty(target,property);,对象属性获取命令getProperty用于获取指定的实例对象中属性的值。二个参数的含义是:参数target是目标对象,property是要获取的属性。如:单击鼠标后,获取MC1对象的不透明度,并在输出窗口显示。on(release)alph=getProperty(_root.MC1,_alpha);trace(alph);,13.tellTarget(target),通知目标命令tellTarget用于通知目标对象

31、,然后进行其他的一些动作。该命令的参数只有一个,指定被通知对象的实例名称。如:下列单击鼠标事件,实现的是通知时间上的ball影片剪辑,从第2帧开始播放。on(release)tellTarget(ball)gotoAndPlay(2);,14.onClipEvent(movieEvent).,影片剪辑事件命令onClipEvent表示当某种动作发生时,将触发影片剪辑元件的其他动作。参数movieEvent是影片剪辑元件可以响应的任何动作,有以下几个:load:电影剪辑实体在时间轴(timeline)中出现时激活事件。unload:电影剪辑实体在时间轴(timeline)中卸载后的第一帧时激活事

32、件,在这一帧里,unload 比其他任何事件都要优先响应。enterFrame:在播放到某一帧时激活事件。mouseMove:只要鼠标移动就激活事件。使用 _xmouse 和 _ymouse 属性能够确定当前鼠标的坐标。mouseDown:鼠标左键按下时激活事件。,mouseUp:鼠标左键松开时激活事件。keyDown:当某一键被按下时激活事件。使用 Key.getCode 方法可以获得最后一个被按下的键的信息。keyUp:当某一键被松开时激活事件。使用 Key.getCode 方法可以获得最后一个被按下的键的信息。data:在loadVariables 或 loadMovie 动作读入数据时

33、激活事件。当指定了一个 loadVariables 动作后,data 事件只在读入最后一个变量时响应一次。当指定了一个 loadMovie 动作后,data 事件会每读入一段数据就响应一次,直到把数据全部载入。,如:下面的代码将在加载电影剪辑的时候读入外部的 Script 程序文件:onClipEvent(load)#include myScript.as,再如:在下面的代码中,onClipEvent 使用了 keyDown 事件和key.getCode。keyDown 事件经常和一个或几个 Key 对象的方法或属性连用;key.getCode 被用来获取浏览者最后一次按下的键的键值,然后再和

34、 Key 对象的 RIGHT 和 LEFT 属性做比较来执行不同的程序:onClipEvent(keyDown)if(Key.getCode()=Key.RIGHT)_parent.nextFrame();else if(Key.getCode()=Key.LEFT)_parent.prevFrame();,再如:在下面的代码中,onClipEvent 使用mouseMove 事件,同时使用 _xmouse 和 _ymouse 属性获取鼠标当前的坐标值,并在输出窗口显示:onClipEvent(mouseDown)trace(_root._xmouse);trace(_root._ymouse

35、);,15.set(variable,value);,对象变量设置命令set用于先声明一个变量,然后为此变量赋值。两个参数,其含义是,参数variable指要声明的变量名或要更新的变量名;参数value指要赋给变量的具体数值。如:下列代码实现单击鼠标后,先获得一个名为ship的影片剪辑对象的x轴坐标值,然后赋给声明的变量xx。on(release)set(“xx”,getProperty(“ship”,_x);,16RemoveMovieClip(target);,删除由 duplicateMovieClip,attachMovie 或 duplicateMovie 方法创建的影片剪辑或图形元

36、件对象。参数target 是由 duplicateMovieClip 创建的目标影片剪辑或图形元件对象名,或是由 attachMovie 或 duplicateMovie 方法创建的影片剪辑或图形元件对象的实体名。,17updateAfterEvent(movieclipevent);,当参数中指定的动作发生后,刷新屏幕(取决于动画设定中的每秒播放帧数项)。在 drag 动作中同时使用鼠标移动来激活 updateAfterEvent,刷新屏幕将不会造成屏幕的闪烁。参数movieclipevent可以指定为下列的一个值作为参数:mouseMove:判断鼠标是否移动,使用 _xmouse 和 _y

37、mouse 属性能够确定当前鼠标的坐标。mouseDown:判断鼠标左键是否按下。mouseUp:判断鼠标左键是否松开。keyDown:判断某一键是否被按下,使用 Key.getCode 方法能够获得最后一个被按下的键的信息。keyUp:判断某一键是否被松开,使用 Key.getCode 方法能够获得最后一个被按下的键的信息。,18.getURL(url,window,method);,获取URL路径命令getURL用于将指定的URL加载到浏览器窗口和将变量数据发送给指定的URL。参数含义是,url 获取文档的URL,window 可选,指定文档应加载窗口或HTML框架,可输入特定窗口的名称,

38、或从下面的保留目标名称中选择:_self:指定当前窗口中的当前框架。_blank:指定一个新窗口。_parent:指定当前框架的父级。_top:指定当前窗口中的顶级框架。method用于发送变量的GET 或POST 方法。如:将一个新URL 加载到空浏览器窗口中。on(release)getURL(,_blank);,【例7.1】利用交互命令gotoAndPlay、gotoAndStop及按钮事件命令为随书配套光盘“素材第4章植物图片”文件夹中的图片像制作相册,方便用户翻看。,7.8 内置类,Flash中使用的类可以分二种,一个是系统提供的,我们直接就可以调用的,叫内置类,一个是我们在使用前必

39、须自己先创建的,叫自定义类。7.8.1 内置类的分类7.8.2 常用内置类简介,7.8.1 内置类的分类,内置类分二种:核心类和Flash Player专用类。,1.十一个核心类,2.Flash Player 专用类,它是Flash Player 和 Flash 运行时模型的专用类。分为四个类别:影片类、媒体类、客户端/服务器类和创作类,这个分类其实就是【动作工具箱】中的各个属性和方法的放置顺序的依据。具体介绍略,7.8.2 常用内置类简介,1.String类,String类对象用于替代以前使用的字符串类型。String类对象的创建方法是通过new运算符进行,如:var my_str=new

40、String();命名时加了个_str,是String类对象名的常用后缀,在录入时有代码提示,如果你不加这样的后缀你最好还是加上:String,这样也会出现代码提示的。String对象的属性:String.length 表示指定 String 对象中的字符数,即串长。,String对象的方法,【例7.2】使用String类,制作具有文字打字机效果的动画。,单击时间轴第1帧,添加代码:,2.Number类,Number类对象用于替代以前使用的数值类型。Number类对象的创建方法是通过new运算符进行,如:var mynum=new Number();也可以直接的把些数字赋给它var mynum

41、=new Number(56);,(1)Number 类的属性,Number.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.toS

42、tring():返回 Number 对象的字符串表示形式。Number.valueOf():返回 Number 对象的原始值。在上面这些中Number.toString()很有用,它的参数是进制基数(从 2 到 36),返回的是个字符串。如:myNumber=new Number(255);trace(myNumber.toString(2);trace(myNumber.toString(8);trace(myNumber.toString(16);,3.Array类,Array类即数组类,实际使用较多。用new运算符创建Array类对象实例的方法有以下几种:var stuname:Arra

43、y=new Array(4);/指定数目var stuname:Array=new Array();/未指定数目var stuname:Array=new Array(张三,李四,王五);/创建并赋值也可以用 运算符创建数组。是数组访问运算符,用它可以创建、赋值、动态访问数组等等 上面的例子我们也可以这样写:var stuname:Array=;var stuname:Array=张三,李四,王五;,数组元素的引用,数组元素的引用需要数组访问运算符,数组元素引用格式:数组名索引即数组名字再加个索引下标就是数组元素比如stname0是第一个元素、stname1是第二个元素、stname2是第三个

44、元素。这个索引就标识了他们的位置,一定注意,索引从0开始的。,为数组元素赋初值,创建了Array类对象以后,可以为数组元素赋初值,称为数组的初始化。如:var stname:Array=new Array();stname0=张三;stname2=李四;跟普通变量的赋值是一样的。但如果你没有第一个var stname:Array=new Array();就是错误的。另外,用字符做索引值有时会很有用。如:my_Array=new Array();my_Arrayone=张三;my_Arraytwo=李四;trace(my_Arraytwo);/李四,数组对象的属性,数组对象的属性:Array.l

45、ength指定数组中元素数量。比如:var mymc=;trace(mymc.length);/结果0mymc.length=98;trace(mymc.length);/结果98,4.Date类,Date类对象类似于以前使用的日期类型。Date类对象的创建方法有:var my_date=new Date();var my_date=new Date(2004,9,12);/创建的同时赋初值 注意:年:0-99:代表1900-1999,其他写全4位,比如2003月:0-11:代表1月-12月,所以你写2代表的是3月小时:从 0(午夜)到 23(深夜 11 点)之间的整数在flash制作中有许多

46、与时间和日期有关的应用,比如万年历、下载时间、时钟以及让用户录入生日、登陆时间等等,就要用到Date类的对象。,Date类对象常用方法,【例7.3】本例要求运用Date类及setProperty等函数,制作时钟动画。,5.Math类,Math 类是一个顶级类,不必使用构造函数即可使用其方法和属性。使用该类的方法和属性可以访问和处理数学常数和函数。Math 类的所有属性和方法都是静态的,并且必须使用语法Math.method(parameter)或Math.constant 来调用。有几个Math 类的方法使用角的弧度作为参数。可以用下面的等式来计算弧度值:radian=Math.PI/180*

47、degree/degree为角度值如,计算一个45 度角的正弦值:Math.sin(Math.PI/180*45);Math 类的属性和方法 从略,6.Color类,通过Color 类,您可以设置影片剪辑的RGB 颜色值和颜色转换,并可以在设置后获取这些值。必须使用构造函数new Color()创建Color 对象后,才可调用其方法。Color 类的构造函数的用法:new Color(target)/target为影片剪辑的实例名称。,Color类的属性和方法,7.Sound 类,Sound 类可以让用户控制影片中的声音。可以在影片正在播放时从库中向该影片剪辑添加声音,并控制这些声音。如果在创

48、建新Sound 对象时没有指定target,则可以使用Sound的方法控制整个影片的声音。在调用Sound 类的方法之前,您必须使用构造函数new Sound 创建Sound 对象。Sound 对象的属性、方法和事件处理函数从略,8.Mouse 类,Mouse 类是不通过构造函数即可访问其属性和方法的顶级类。可以使用Mouse 类的方法来隐藏和显示SWF 文件中的鼠标指针(光标)。默认情况下鼠标指针是可见的,但是您可以将其隐藏并实现用影片剪辑创建的自定义指针,Mouse 类的方法,9.key 类,Key 类是不通过构造函数即可使用其方法和属性的顶级类。使用Key 类的方法可生成用户能够通过标准

49、键盘控制的界面。Key 类的属性是常量,表示所使用的键盘按键。,Key 类的方法,如,以下脚本使用户可以使用键盘方向键控制影片剪辑的位置。onClipEvent(enterFrame)if(Key.isDown(Key.RIGHT)this._x=_x+10;else if(Key.isDown(Key.DOWN)this._y=_y+10;,7.9 综合实例,彩色泡泡动画星星紧随鼠标转动动画,【例7.4】利用duplicateMovieClip复制movieclip,用setProperty与random函数所取的随机数决定复制出的movieclip的位置,利用new Color,setRGB与random函数来随机决定复制出的movieclip的颜色来制作有趣的彩色泡泡动画。,【例7.5】在Flash MX中鼠标的跟踪的制作方法有很多种。本例要求运用startDrag、setProperty、duplicateMovieClip等函数,制作一种可以有多种变化方式的鼠标跟踪。让星星紧随你的鼠标转动。,var a=0;var b=0;,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号