Flash.ActionScript.3.0动画教程
中文名: Flash ActionScript 3.0动画教程原名: Foundation Flash ActionScript 3.0 Making Things Move!别名: Foundation Flash ActionScript 3.0 Make Things Move!中文版作者: Keith Peters译者: FL基理大师资源格式: PDF版本:文字版发行时间: 2008年04月01日地区:大陆语言:简体中文简介:内容介绍: ActionScript 3.0是一种功能强大的面向对象编程语言。本书分五大部分全面讲解ActionScript 3.0动画。第一部分介绍了ActionScript动画基础,包括ActionScript 3.0基本知识和渲染技术等。第二部分和第三部分集中讲述了制作动画涉及的基本运动和高级运动,如速度和加速度、边界和摩擦力、用户交互、缓动和弹性、碰撞检测以及正向和反向运动等。第四部分介绍了3D动画基础。最后一部分介绍了矩阵数学等其他技术。通过阅读本书,读者可以制作出各种酷炫的动画效果。不论是初学者还是有经验的ActionScript开发人员,本书都是一本优秀的参考书。编辑推荐:跟随Flash大师深入Action Script动画秘境,丰富的经典示例和专家技巧,融技术与艺术于一炉。 “厌倦了使用关键帧和补间实现动画,想学习ActionScript?本书正适合你。虽然已经使用ActionScript多年,我仍然从本书中学到了大量东西。强烈推荐!” ——flashmagazine.com “如果今年你只打算买一种ActionScript书,请买本书,而且要买上两本,一本在家里读,一本放在办公室里。只需要一个周末,你将学到其他Flash开发人员要花上几年才能精通的知识和技术。市面上Flash方面真正的好书其实很少,本书就是其中一本。这是多年来我读到的最好的Flash书,绝对是任何Flash开发人员必读之作。” ——Satori Canton,actionscript.com要在Flash中实现酷炫的动画效果、游戏乃至应用程序,ActionScript是绝对少不了的。作为一种编程语言,ActionScript3.0已经变得非常成熟,足以承担大任。在这部已经成为经典的著作中,世界级的Flash大师Keith Peters结合自己多年的经验和思考,全面讲述了Flash动画编程中涉及的各种数学和物理知识,解答了大量许多人还在努力解决的疑难问题。书中除ActionScript3.0的语言特性、动画和运动的基础知识之外,还探讨了各种高级运动技术和三维动画的制作。更为难能可贵的是,书中代码质量极高,而且富于实用性,处处流露出作者融程序员和艺术家于一身的特质,给人以美的感受。作者介绍: Keith Peters,世界级的Flash技术大师。他的个人网站www.bit-101.com是业界知名的技术资源站点,以众多极具启发性和实验型的开源ActionScript代码而蜚声全球。他拥有近10年的Flash开发和设计经验,撰写过多部Flash方面的图书和大量杂志文章,本书为其代表作。历经四个月的时间,今天终于把Foundation Actionscript 3.0 Animation —— Making Things Move!一书全部译完。非常感谢本书作者Keith Peters带给我们这么好的教材,他对本书的内容可以说是精雕细琢,不断提炼。为了能让这本经典教材呈现出它特有的魅力,我不惜花费大量的时间研究、揣摩作者的意图,尽可能地表述完整、准确。我的译文中拒绝出现蹩脚、拗口、晦涩、难懂的词句,尤其是在原理的阐述上更要清楚、明确,不能让读者在学习知识的过程中再去推敲这段话想表述什么意思。因此,我采取的策略就是转译。尽可能地用我们的思维习惯和语言方式来表示作者的意图,立争用最清晰、明快的语言将原理阐述明白,这是对您的时间和精力的最大尊重。非常感谢亲爱的网友们这么长期以来的支持,忠心地感谢大家,让我们一起为Flash事业而奋斗!目录:目录说明红色字体表明缺少该部分,作者没有翻译。第一部分ActionScript动画基础第1章基本动画概念1.1什么是动画1.2帧和运动1.2.1帧就是记录1.2.2程序帧1.3动态动画VS静态动画小结第2章ActionSript 3.0动画基础2.1动画基础2.2关于ActionSript版本2.3类和面向对象编程2.3.1基类2.3.2包(Package) 2.3.3导入(Import) 2.3.4构造函数(Constructor) 2.3.5继承(Inheritance) 2.3.6 Movielip/Sprite子类2.3.7创建文档类(Document class) 2.4设置AtionSript3.0应用程序2.4.1使用Flash CS3 IDE(集成开发环境) 2.4.2使用Flex Builder 2.4.3使用免费的命令行编译器2.4.4关于跟踪2.4.5缩放影片2.5程序动画2.5.1动画的执行过程2.5.2帧循环2.5.3影片事件2.5.4事件和事件处理2.5.5事件侦听器与处理函数2.5.6动画事件2.6显示列表2.7用户交互2.7.1鼠标事件2.7.2鼠标位置2.7.3键盘事件2.7.4键码2.8小结第3章三角学应用3.1什么是三角学(Trigonometry) 3.2角3.2.1弧度制(radian)与角度制(degrees) 3.2.2 Flash坐标系3.2.3三角形的边3.3三角函数3.3.1正弦(Sine) 3.3.2余弦(Cosine) 3.3.3正切(Tangent) 3.3.4反正弦(Arcsine)和反余弦(Arccosine) 3.3.5反正切(Arctangent) 3.4旋转(Rotation) 3.5波形3.5.1平滑的上下运动3.5.2线性垂直运动3.5.3心跳运动3.5.4双角波形3.5.5绘制波形3.6圆和椭圆3.6.1圆形运动3.6.2椭圆运动3.7勾股定理3.8两点间距离3.9本章重要公式3.10小结第4章渲染技术4.1 Flash中的颜色4.1.1使用十六进制表示颜色值4.1.2透明度和32位色4.1.3新的数值类型:int和uint 4.1.4色彩合成4.1.5获取颜色值4.2绘图API 4.2.1绘图对象4.2.2使用clear删除绘制4.2.3使用lineStyle设定线条样式4.2.4使用lineTo和moveTo绘制直线4.2.5过控制点的曲线4.2.6使用beginFill和endFill创建图形4.2.7使用beginGradientFill创建渐变填充4.3颜色变换4.4滤镜(Filter) 4.4.1创建滤镜4.4.2动态滤镜4.5位图4.6读取和嵌入资源4.6.1读取资源4.6.2嵌入资源4.7本章重点公式4.8小结第二部分基本运动第5章速度与加速度5.1速度向量(Velocity) 5.1.1向量与速度向量5.1.2单轴速度5.1.3两个轴上的速度5.1.5速度向量扩展5.1.5速度扩展5.2加速度5.2.1单轴加速度5.2.2双轴加速度5.2.3重力加速度5.2.4角加速度5.2.5制作飞船5.3本章重要公式5.4小结第6章边界与摩擦力6.1环境边界6.1.1设置边界6.1.2移除物体6.1.3重置对象6.1.4屏幕环绕6.1.5回弹6.2摩擦力6.2.1摩擦力,正确方法6.2.2摩擦力,简便的方法6.2.3摩擦力的应用6.3本章重要公式6.4小结第7章用户交互:移动物体7.1按下和放开精灵7.2拖拽影片7.2.1使用mouseMove执行拖拽7.2.2使用startDrag/stopDrag执行拖拽7.2.3结合运动代码的拖拽7.3投掷7.4小结第三部分高级运动第8章缓动和弹性8.1成比例运动8.2缓动8.2.1简单的缓动8.2.2缓动何时停止8.2.3移动的目标8.2.4缓动不仅限于运动8.2.5高级缓动8.3弹性8.3.1一维坐标上的弹性运动8.3.2二维弹性运动8.3.3向移动目标运动8.3.4弹簧在哪? 8.3.5弹簧链8.3.6多目标点弹性运动8.3.7目标偏移8.3.8弹簧连接多个物体8.4本章重点公式8.5小结第9章碰撞检测9.1碰撞检测方法9.2 hitTestObject与hitTestPoint 9.2.1碰撞检测两个影片9.2.2影片与点的碰撞检测9.2.3使用shapeFlag执行碰撞检测9.2 4 hitTest总结9.3基于距离的碰撞检测9.3.1简单的距离碰撞检测9.3.2弹性碰撞9.4多物体碰撞检测方法9.4.1基本的多物体碰撞检测9.4.2多物体弹性9.5其他的碰撞检测方法9.6本章重要公式9.7小结第10章坐标旋转和角度回弹10.1简单的坐标旋转10.2高级坐标旋转10.2.1单物体旋转10.2.2多物体旋转10.3沿角度回弹10.3.1实现旋转10.3.2优化代码10.3.3动态效果10.3.4修正“跌落”问题10.3.5多角度反弹10.4本章重点公式10.5小结第11章台球物理11.1质量11.2动量11.3动量守恒11.3.1单轴上的动量守恒11.3.2两个轴上的动量守恒11.4本章重点公式11.5小结第12章粒子引力和重力12.1粒子(Particles) 12.2重力12.2.1万有引力12.2.2碰撞检测及反作用12.2.3轨道运动12.3弹性12.3.1引力与弹性12.3.2弹性节点花园12.3.3结点的连接12.3.4有质量的结点12.4本章重要公式12.5小结第13章正向运动:行走13.1正向和反向运动学介绍13.2正向运动学编程准备13.2.1单关节运动13.2.2双关节的运动13.3自动运行13.3.1创建自然的行走循环13.3.2动态调整13.4使它真正地行走13.4.1给它一些空间13.4.2加入重力13.4.3控制碰撞13.4.4控制反应13.4.5屏幕折回13.5小结第14章反向运动:拖动和伸展14.1单物体的拖拽与伸展14.1.1单关节伸展14.1.2单关节拖拽14.2多关节拖拽14.2.1拖动两个关节14.2.2拖拽更多的关节14.3多关节伸展运动14.3.1抓住鼠标14.3.2抓住一个物体14.3.3加入一些交互14.4使用标准的反向运动学方法14.4.1余弦定律介绍14.4.2 ActionScript余弦定律14.5本章重要公式14.6小结第四部分3D动画第15章3D基础15.1第3维和透视15.1.1 z轴15.1.2透视公式15.2速度和加速度15.3回弹15.3.1单个物体回弹15.3.2多物体回弹15.3.3 z轴排序15.4重力15.5折回15.6缓动和弹性15.6.1缓动15.6.2弹性15.7坐标旋转15.8碰撞检测15.9本章重点公式15.10小结第16章3D线条和填充16.1创建点和线16.2创建图形16.3创建3D填充16.4 3D实体建模16.4.1建立旋转立方体模型16.4.2建立其它形状的模型16.5移动3D实体模型16.6小结第17章背面剔除和3D灯光17.1背面剔除17.2深度排序17.2.1背面剔除17.2.2深度排序17.3 3D灯光17.4小结第五部分其他技术第18章矩阵数学18.1矩阵基础18.2矩阵运算18.2.1矩阵加法18.2.2矩阵乘法18.3 Matrix类18.4小结第19章实用技巧汇集19.1布朗(随机)运动19.2随机分布19.2.1方形分布19.2.2圆形分布19.2.3偏向分布19.3基于定时器和时间的动画19.3.1基于定时器的动画19.3.2基于时间的动画19.4相同质量物体之间的碰撞19.5声音集成19.6有用的公式Making Things Move!结束语### Flash.ActionScript.3.0动画教程知识点梳理####一、ActionScript 3.0动画基础**1.1什么是动画** - **定义**:动画是指一系列图像连续播放时所产生的视觉效果,使人感觉物体在移动或变化状态。 - **原理**:基于人眼的视觉暂留效应,当新图像快速替换旧图像时,人眼会认为图像之间产生了连续的运动。 **1.2帧和运动** - **帧的概念**:帧是构成动画的基本单位,每个帧代表动画序列中的一个静止画面。 - **帧就是记录**:每一帧包含了特定时间点上所有可见元素的状态信息。 - **程序帧**:通过编程语言(如ActionScript)来控制每个帧的生成和播放顺序。 - **动态动画与静态动画的区别**: - **动态动画**:通过编程控制的动画,能够实现更复杂的效果和交互性。 - **静态动画**:通常指通过关键帧手动创建的传统动画方式,适用于简单动画。 **2.1动画基础** - **概述**:涵盖了动画的基本概念、原理以及如何使用ActionScript 3.0进行动画编程。 - **ActionScript版本**:介绍不同版本之间的区别,强调3.0版本的功能增强。 - **面向对象编程**:解释如何利用类、封装、继承等面向对象的概念来编写更高效、可维护的代码。 - **基类**:用于创建其他类的基础模板。 - **包(Package)**:组织类的方式,便于管理和访问。 - **导入(Import)**:引入外部类库。 - **构造函数(Constructor)**:初始化对象时调用的方法。 - **继承(Inheritance)**:子类继承父类的属性和方法。 - **Movielip/Sprite子类**:专门用于处理动画的类。 - **创建文档类(Document class)**:控制整个文档的行为。 **2.4设置ActionScript 3.0应用程序** - **集成开发环境(IDE)**: - **Flash CS3 IDE**:Adobe官方提供的专业工具。 - **Flex Builder**:另一种强大的开发环境。 - **免费的命令行编译器**:适合命令行爱好者或自动化构建流程。 - **关于跟踪**:调试工具,帮助开发者监控程序运行状态。 - **缩放影片**:控制动画在不同尺寸设备上的表现。 **2.5程序动画** - **执行过程**:动画是如何被计算和渲染的过程。 - **帧循环**:持续更新动画帧的循环机制。 - **影片事件**:处理与影片播放相关的事件。 - **事件和事件处理**:响应用户的输入和其他系统事件。 - **事件侦听器与处理函数**:注册监听事件并定义处理逻辑。 - **动画事件**:特定动画相关的事件处理。 **2.6显示列表** - **概念**:管理舞台上所有可视元素的数据结构。 - **操作**:添加、移除、更新元素的位置和属性。 **2.7用户交互** - **鼠标事件**:点击、移动、释放等操作。 - **鼠标位置**:获取鼠标当前位置。 - **键盘事件**:按键按下、释放等操作。 - **键码**:用于识别特定按键的代码。 **3.1三角学应用** - **概念介绍**:三角学在动画编程中的应用。 - **角度制和弧度制**:角度测量的不同单位。 - **三角函数**:正弦、余弦、正切及其反函数。 - **旋转(Rotation)**:物体绕轴旋转的数学表达。 - **波形**:周期性变化的图形。 - **圆和椭圆**:通过三角函数生成的路径。 - **勾股定理**:直角三角形边长关系。 - **两点间距离**:计算两点之间的直线距离。 **4.1 Flash中的颜色** - **十六进制颜色值**:表示颜色的标准格式。 - **透明度和32位色**:颜色模型的介绍。 - **数值类型**:整数和无符号整数的使用。 - **色彩合成**:混合不同颜色的方法。 - **获取颜色值**:从像素中提取颜色信息。 **4.2绘图API** - **绘图对象**:处理图形绘制的对象。 - **删除绘制**:清除已绘制的内容。 - **线条样式**:设置线条的外观。 - **绘制直线**:使用特定命令绘制直线。 - **曲线绘制**:通过控制点绘制曲线。 - **图形创建**:使用填充命令绘制图形。 - **渐变填充**:创建渐变颜色填充。 **4.3颜色变换** - **颜色调整**:改变颜色的亮度、对比度等属性。 - **滤镜(Filter)**:应用于图形或图像的特殊效果。 - **位图**:存储像素数据的图像格式。 - **读取和嵌入资源**: - **读取资源**:加载外部资源。 - **嵌入资源**:将资源编译到SWF文件中。 ####二、基本运动**5.1速度向量(Velocity)** - **概念**:速度向量表示物体运动的方向和速率。 - **单轴速度**:在单一方向上的速度。 - **双轴速度**:在二维平面内的速度。 - **速度向量扩展**:更复杂的矢量运算。 **5.2加速度** - **单轴加速度**:沿一条直线的加速度。 - **双轴加速度**:在二维空间内的加速度。 - **重力加速度**:地球引力导致的加速度。 - **角加速度**:绕轴旋转时的加速度。 - **制作飞船**:模拟太空船的运动。 **6.1环境边界** - **设置边界**:限定物体的活动范围。 - **移除物体**:从舞台上移除对象。 - **重置对象**:将对象恢复到初始位置。 - **屏幕环绕**:物体离开一侧时从另一侧出现。 - **回弹**:物体撞击边界后的反弹行为。 **6.2摩擦力** - **正确方法**:基于物理模型的真实模拟。 - **简便方法**:简化计算的近似模拟。 - **摩擦力的应用**:控制物体的减速。 ####三、高级运动**8.1成比例运动** - **概念**:根据一定规则调整物体的速度或位置。 **8.2缓动** - **简单缓动**:基本的缓动效果。 - **缓动何时停止**:决定缓动过程的结束条件。 - **移动的目标**:跟踪移动目标的缓动效果。 - **缓动不仅限于运动**:缓动技术在非运动场景中的应用。 - **高级缓动**:更复杂的缓动算法。 **8.3弹性** - **一维弹性运动**:沿直线的弹性运动。 - **二维弹性运动**:在二维空间中的弹性运动。 - **向移动目标运动**:朝向动态目标的弹性运动。 - **弹簧链**:多个弹性物体相互连接形成的系统。 - **多目标点弹性运动**:多个目标点共同作用下的弹性运动。 - **目标偏移**:目标位置的微调。 - **弹簧连接多个物体**:多物体间的弹性连接。以上内容仅为本书的部分知识点概述,详细的技术细节和示例代码请参阅原文。通过学习这些知识点,开发者可以更好地理解和掌握ActionScript 3.0动画编程的核心技术,从而创作出更加丰富多彩的动画作品。
4.64MB
文件大小:
评论区