




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flash中的ActionScript制作课件的研究Flash中的ActionScript制作课件的研究目录摘要 2 第一章 概述 31.1 讨论Flash中的ActiveScript的目的 31.2 讨论课题的层次 3-4第二章 深论2.1用Flash的ActionScript创建三维动画 5-182.2用Flash的ActionScript实现物理学 18-33 2.3用Flash的ActionScript对声音进行编辑 33-41 2.4创建动态Flash页面 41-452.5Flash和XML 45-462.6 Flash和JavaScript交互 46-48第三章 结束语 49致谢 50参考文献 51摘要现在我们越来越多地接触到由Flash的ActionScript编写的游戏、网页、动画甚至是一些应用小程序。于是我们不禁要问Flash的ActionScript究竟能为我们作些什么?有了这个疑问,我们接下来的任务就是解决。Flash为我们提供许多的函数、语句、类、数据组建等脚本。这样就为我们提供了很大的编程空间,为我们能够制作一个好的动画、好的游戏、甚至一个好的网站提供了条件。但从另一方面讲这太多的函数、语句、类等等为我们对ActionScript了解、掌握在很多方面确实是一个障碍。我们今天研究Flash中的ActionScript其目的主要还是为了向大家介绍一下他的作用、功能,以及他可以创作出什么样神奇的效果,以此来引起Flash爱好者对ActionScript的兴趣。在我们的研究当中涉及到ActionScript的3D、物理、声音等效果,另外还有他与XML、JavaScript的交互使用等。我们在研究中将逐步由浅入深、由易到难,并且通过简单而有趣的例子将复杂的理论尽量说的通俗易懂。如:在说到3D时我们将从通俗的空间坐标入手,逐步进入Flash中的深度表示等问题。在提到物理效果时我们将会从最基本的匀速运动开始逐步深入到加速、碰撞等问题。在研究的过程中我们会不断的对实例进行调试、验证直到弄明白,搞清楚并且讲清楚为止。关键字:帧,层,库,时间轴,场景,电影剪辑。第一章 概述1.讨论Flash中的ActiveScript的目的自上世纪九十年代Internet传入我国以来,在仅仅不到二十年的时间他便几乎遍布我们生活的每个角落。现在在我们这些年轻人中很难找到一个不会上网的。当我们登录到某一网站时我们首先会注意到什么呢?答案很简单,那就是动画(或许是广告、或许是各种活动宣传)。有时候某些网站还没登录上,广告却早就跳了出来。大多数上过网或是接触过网页制作的人都清楚这些广告、宣传等。部分或全部都是由Macromedia公司的Flash制作出来的。我们都知道无论是用胶片拍成的电影或是早期的动画片都是利用快速的图像更替来迷惑人的眼睛,以此达到这个人或物体移动的效果,而其实只是一连串稍有变化的图形或是图像构成的。目前网页上的Flash动画大多数也都是这个原理。了解Flash的人都知道Flash大体由帧、层、以及各种原件(影片剪辑、图片、按钮)组合而产生各种简单或复杂的动画,但我们并不能说Flash就是帧、层、原件的简单组合。因为我们毕竟还见过许多由Flash制作的小游戏、小课件,它们绝对不会是简单的帧、层组合。因此说,即使你熟练掌握了帧、层、原件的组合,制作了一个非常精彩的动画。那也只能说是对Flash了解了一点皮毛罢了。因为Flash还具有一个强大的编辑功能,那就是ActionScript,我们所看到的游戏,以及各种交互式的网站都是由Flash中的ActionScript直接或间接参与制作的。而我们今天所讨论的主要就是Flash中ActionScript的功能以及它能为我们带来什么样令人惊奇的视觉、听觉的震撼。2. 讨论课题的层次我们知道一些世界知名软件公司如Microsoft、Macromedia、Adobe、Sybase等开发的软件往往都具有高度的集成性,彻底学习和掌握他们并非易事,何况纯熟的运用他们就更是难上加难,所以在很多时候当我们早把软件淘汰了却对这个软件的很多功能却一无所知。对于Macromedia Flash也是一样,当我们从相关的书籍上了解到Flash的ActionScript 具有如此强大的功能时真使得我们欣喜若狂,在这里我们仅仅依靠自身的能力以及老师的指导大体总结了ActionScript可实现的如下几个功能:利用ActionScript开发Flash 的三维动画利用ActionScript实现Flash中的物理学利用ActionScript实现Flash的声音编程利用Flash创建动态页面。Flash与XML,JavaScript的交互功能。当然由于我们的能力有限,所以对以上提到的Flash ActionScript功能的研究会有不同的详略层次。在我们的讨论中将会把重点放在以下几个方面:用Flash的ActionScript创建三维动画用Flash的ActionScript实现物理学用Flash的ActionScript对声音进行编辑另外我们还将对以下三个功能进行初步的了解:创建动态Flash页面XML和FlashFlash和JavaScript交互在详细介绍Flash中ActionScript的作用之前我们首先介绍一下ActionScript的特点:(1) Flash的脚本动作语言可以撰写在帧上,也可以撰写在动画上。区别在于写在帧上的当动画播放到帧时就会执行当中的ActionScript;而将ActionScript写在动画组件当中,当动画接受到用户对组件的动作时就会执行当中的ActionScript.(2) Flash的ActionScript可以像一般程序语言一样有进行判断和运算功能,在使用前必须先设定变量这样才可以对变量进行判断。区别是Flash中的变量不需要严格定义成数值或字符串,因为Flash会自动地将数据识别为响应整数或字符。(3) 在下面的讲解中我们会经常看到如OnClipEvent(movieEvent)之类的语句,这是MC(movie clip)的动作语句。其中movieEvent包含七个参数:load(MC实体在时间轴中出现时激活事件);EnterFrame(在播放到某一帧时激活事件);mouseMove、mouseDown、mouseUP则是在鼠标移动、按下左键、松开左键时激活的事件;KeyDown、KeyUP则分别是按下和松开某个键时所激活的事件。第二章 深论1 用Flash的ActionScript创建三维动画我们大家都知道Flash是用来制作二维动画的软件,但是当我们引入ActionScript以后便可用来制作三维动画了。到目前为止已经有越来越多的Flash开发者被三维动画(3D)的威力所震撼。向Flash电影中加入3D效果能够给导航系统添加情趣,使视觉效果更生动感人,或者也可以用来娱乐观众。现在我们可以在国内外一些竞争领先的(front-runing)网站(例如,和)看到许多利用Flash制作的3D动画效果,并且这样的网站不断增多。但是Flash是个二维软件程序它并不支持三维模型。那么,如何在Flash中创建三维动画呢?其实很简单:你可以伪造(仿造fake)它。有两种途径可以创建三维形态和动作的幻觉:ActionScript 3D,你可以在其中编写整个项目:Rendered 3D,这里你可以用第三方修补软件、Flash和一些ActionScript 脚本。 3D基本知识首先,我们回顾和扩展一些熟知的概念。我们将讨论三维空间中点的表示,介绍一种新型的三维坐标,并描述该坐标系在Flash中的工作方式。数学坐标系统几乎所有人都熟知二维直角坐标系。原点是图像中心的固定点,x和y轴通过原点,互相垂直。x轴方向从左 (负) 到右 (正),y轴方向从底(负)向上(正) (如图) 。(图) 二维直角坐标系为了在三维空间表示点,我们再次定义原点为固定在中心的点,选取通过原点的3个轴,互相垂直。这三个轴分别为x轴、y轴、z轴。任何两个轴都能组成坐标平面。下图展示了三维坐标系。(图) 三维坐标系有序三元组 (ordered Triplets)学习解析几何和代数的人整天都在绘图。每个点在图上的位置有序对表示。它包含点在x方向(横坐标) 和y 方向 (纵坐标)的值。三维空间的点也可以用有序对表示。有序三元组包含3个独立值,分别表示点在x、y、z轴方向的值。使用三维坐标系,我们可以画出任意一点(如图)。(图) 有序对描述三维空间中点位置有序实数三元组 (a,b,c)告诉我们在x轴方向前进a 个单位,y轴方向前进b个单位,z 轴方向前进c 个单位,然后绘出该点。Flash三维坐标系迄今为止,三维坐标表示几乎是所有数学领域内的标准。然而它和二维直角坐标系有很大区别。在二维坐标系中,x轴方向向外突出;y轴方向从左到右;z轴竖起,与x轴和y 轴垂直。也就是说,x轴和y轴方向互相交换,计算时容易混淆。所以在Flash里,采用了一种不同的坐标系,x轴和通常一样,从左到右;y轴在竖直方向上;z轴向屏幕外突出 (如图)。(图) Flash里的三维坐标系在Flash里,z轴代表一个物体距离的远近。当物体的z轴位置增加时,物体朝远离屏幕的方向运动,当物体的z 轴值减小时,物体朝接近屏幕的方向运动 (如图)。(图) Flash中三维坐标轴的定位描绘3D一旦在空间中画出一些点,你可能希望描绘它们或在舞台上显示它们。但是如何能够在二维的屏幕上描绘三维点呢?如何确定点的大小,使其看上去,和在真实三维环境中一样呢?我们将用一些推倒公式,解决这些问题。增加透视效果 (perspective)透视有助于区分二维和三维。透视无所不在,它是视觉对物体的弯曲,根据物体的距离远近决定其位置。如果你站在马路中央,顺着路方向尽可能朝远处看去,你将看到马路的两条边缘重合到一起。你看得越远,两条边就在越远的地方越来越近,直到汇聚(converge)成一点。透视也会影响人对运动的感知。例如,物体在前景和后景上,以同样的速度运动,位于前景的物体看上去运动速度更快。将三元有序组转化为有序对。简单抽象一下透视问题。已知一个点的三元有序组(x,y,z),你希望在没有z方向位置的情况下,确定该点将放在屏幕上什么地方。因为计算机屏幕没有z轴,所以必须找到一种方法将有序三元组转化成有序对,这种转化必须考虑到物体z方向位置。一种简单的方法是,丢弃z值。但如果这样做,马路边缘永远不会汇聚。相反,当道路向远方延伸时,它们始终保持平行。我们可以运行简单的几何知识解决这个问题。在我们讨论如何映射 (project) 三维点到二维计算机屏幕之前,需要了解一些量化数学公式。下图显示了空间位置 (x,y,z) 上的一点。设它映射到计算机屏幕上的点(x,y)。用撇号是为了区别点在空间中的x和y位置与在屏幕上的x和y位置。因为图像是二维的,必须省去1维。在这种情况下,省去x。标志d的数值为观众眼睛到屏幕的距离。该值是决定3D环境视觉效果的关键成分。点在空间的z位置从计算机屏幕度量,因为原点在屏幕上。我们可以说观众的z方向位置为 -d (负d),因为z轴负方向朝向屏幕。(图)Flash中,三维点映射到二维屏幕上根据上面的图我们可以用来解决透视问题。已知d、y、z,求解y。上图中包含两个相似三角形。根据简单的几何定律,两个三角形的边对应成比例。如下等式:(算式)相似三角形对应边成比例 运用基本的代数方法求解方程的y值。两边同乘以y和y,然后同除以(d+z)。如下式:(算式)通过求y方向位置比例,将有序三元组转化成有序对这就得到了关于透视的重要的方程。根据前一个等式可以求解点映射到屏幕上时y方向位置。用类似的方法求得映射点的x方向位置。现在可以写出近乎完整的方程,在考虑z方向位置的情况下,将有序三元组转化到有序对: (算式)将有序三元组转化为有序对方程数学公式越简洁越好。例如,如果有表达式+ x,可以提取因子x将其化简为x(x+1)。类似地,对于透视公式,可以在计算透视有序队之前,提取因子d/(d+z),将其设为一个单独的变量。该变量在确定电影剪辑物体大小时,扮演了重要的角色,同时避免了额外的数学操作。因此我们可以得到透视公式的最终形式: (算式)提取公共项现在,我们可以应用这些新知识,编写将有序三元组转化成有序对的脚本。首先,任意选择3个数作为有序三元组,选择一个d值,作为观众眼睛到屏幕的距离,我们可以再次以马路为例,想一想如果选择的d值太小,则看上去会像是鱼眼镜头(fish-eye),马路边缘会迅速汇聚。当然如果选择的d值太大,将很难区分远处点和进出点,因为这样马路汇聚会很慢。因此一般选择200500之间的值。下面的脚本被放置在一个电影剪辑的剪辑事件中。脚本将赋予该电影剪辑一个随机有序三元组(其值在-100100之间),然后计算点显示在屏幕上的位置。 OnClipEvent (load)/设三组随机数x=Math.Radom()*200-100;y=Math.Radom()*200-100;z=Math.Radom()*200-100;/设变量d作为观众眼睛到屏幕的距离D=400;/计算透视比率Perspective_ratio=D/(D+z);/计算透视点与屏幕间的距离Perspective_x=x*Perspective_ratio;Perspective_y=y*Perspective_ratio;改变舞台中点的位置和大小。尽管脚本计算了三维点在二维屏幕上的位置,我们仍然不能描绘出点render(描绘)用于文中指确定代表点的电影剪辑的位置和大小确定点的位置是最容易的部分。如果已知空间中一点(x,y,z),你可以将其转化为屏幕上的(x,y)点,而不必知道它是在Flash舞台中的位置。你必须先确定原点的位置,因为Flash中原点(0,0)位于最左上角。任何物体都围绕原点运动。原点是可以设置的最重要的变量之一。当确定了x和y之后,根据原点的位置,可以将点平移到x轴和y轴上的对应位置上。OnClipEvent(load)/设置起始点位置Origin_x=275;Origin_y=200;/设置透视点的位Perspective_x=Math.random()*200-100;Perspective_y=Math.random()*200-100;/影片剪辑在在场景中的坐标This._x=origin_x+perspective_x;This._y=origin_y-perspective_y;当影片剪辑放置到舞台上后,接下来只需考虑其大小。不同的z值确定不同透视比率,根据透视比率可以很好地确定电影剪辑的大小。当z 变得相当大时(点距离屏幕遥远),透视比率的分母也变得很大。一个数除以一个大数的结果实一个很小的数。所以,总的来说,当z 增加,透视比率减小。反之,z减少,透视比率增加。这就是我们希望点的大小所具有的特征。当物体远离时(z增加),其尺寸变小。当物体靠近时(z减小),尺寸变大。然而,比率不能完全描述这种关系:如果只考虑透视比率,不考虑电影剪辑的大小,所有物体的尺寸会一样大。根据电影剪辑大小与透视比率的乘积,可以确定描绘点的透视尺寸。如下所示,在该等式中,regular_size是原点处电影剪辑的大小,perspective_size表示该剪辑透视后的大小。Perspective_size=regular_size*perspective_ratio;回到第一个脚本,随机选取一个有序三元组并转化为有序对,我们也可以描绘出该点。这个脚本可以放在任何电影剪辑事件中。你还必须初始化原点处电影剪辑的大小、观众达屏幕的距离、原点的位置等常量。onClipEvent(load)/原点坐标Origin_x=275;Origin_y=200;/透视点-观众到显示屏之间的距离D=400;/电影剪辑到原点坐标的系数Regular_size=this._width;/随机产生三组数X=math.random()*200-100;Y=math.random()*200-100;Z=math.random()*200-100;/估算透视比率Perspective_ratio=D/(D+z);/估算透视点在屏幕上的坐标Perspective_x=x*perspective_ratio;Perspective_y=y*perspective_ratio;/记录影片剪辑在舞台上的坐标This._x=origin_x+perspective_x;This._y=origin_y-perspective_y;/记录影片剪辑的比率This._zscale=this._yscale=regular_size*per
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025昆明市盘龙区汇承中学招聘教师(12人)考前自测高频考点模拟试题及答案详解(网校专用)
- 2025德曼节能科技(山东)有限公司招聘10人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025湖南师范大学科创港校区规划建设指挥部劳务派遣人员招聘5人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025广西河池市巴马瑶族自治县消防救援大队招录3人模拟试卷有答案详解
- 2025合肥市口腔医院招聘工作人员81人考前自测高频考点模拟试题附答案详解
- 2025年西北(西安)电能成套设备有限公司招聘(4人)模拟试卷及参考答案详解
- 2025贵州民族大学参加第十三届贵州人才博览会引才60人考前自测高频考点模拟试题(含答案详解)
- 2025河南郑州高新区双桥社区卫生服务中心招聘3人模拟试卷及答案详解一套
- 河北省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【轻工纺织大类】模拟练习
- 食品加工生产合同书5篇
- 2025济南市工程咨询院招聘(6人)考试参考试题及答案解析
- 2025年国防教育知识竞赛试题(附答案)
- 丙酮酸脱氢酶缺乏的护理
- GB/T 3452.1-2005液压气动用O形橡胶密封圈第1部分:尺寸系列及公差
- Q∕GDW 12178-2021 三相智能物联电能表技术规范
- 合同法中英文对照版
- 小学道法小学道法六年级上-5.国家机构有哪些(第二课时-国家机关的职权)ppt课件
- 车架设计手册1
- 绿色生态城区建设技术导则
- 文明施工保证措施
- 航空机载设备履历本
评论
0/150
提交评论