本书出自著名的Flash奇才Robert Penner之手,书中展现了隐藏在惊人创造力背后的独特的程序设计和视觉设计理念。
本书详尽探讨了如何以ActionScript创建动态的视觉效果,内容覆盖面向对象和基于事件的程序设计、数学、物理、色彩、绘图等专题,精选的实例讲解更是体现出作者丰富的想象力与创造过程,书中还披露了大量Flash未公开功能。
本书凝聚着作者的宝贵经验和真知灼见,是具有指导意义的关于Flash爱好者阅读参考。
第I部分 预备知识
第1章 Flash信徒:过程和训练
第2章 面向对象编程技术
第II部分 基本概念
第3章 Flash与数学1:三角学和坐标系
第4章 Flash与数学2:二维空间中的向量
第5章 Flash与数学3:三维空间中的向量
第6章 基于事件的程序设计
第III部分 动态视觉效果
第7章 运动、变形和缓动
第8章 Flash与物理学
第9章 ActionScript的颜色控制
第10章 ActionScript绘图
第IV部分 综合实例
第11章 作品1:北极光
第12章 作品2:暴风雪
第13章 作品3:分形树
第14章 作品4:龙卷风
Robert是一位Macromedia Flash自由创作人、顾问、作家和发言人,他的工作重点是Flash中的数学和面向对象设计。作为Ultrashock.com的主持人和设计师,Robert以开创性的技术革新和朴实,简约的风格闻名于国际Flash界。他的技术革新包括Flash后退按钮的集成和数学缓动公式等。除了因在Ultrashock主持多个论坛和在Chattyfig Flashcoders邮件列表上关于OOP的讨论而享有盛誉外,Robert在Axismedia.com的出色工作还为他赢得了两次Flash Film Festival决赛的提名。读者可以在http://www.robertpenner.com的浏览他的作品。
大约一年以前, Jim Schachterle希望我为Osborne/McGraw-Hill写一本关于Flash的书. 对于这个计划他有一个非常明确的想法--这本书要体现出"美术设计和程序设计的完美结合". 也就是说, 这本书要讲述的是用代码创建视觉元素. 我对这个领域做过一些研究, 读者可以参考我的站点(www. robertpenner.com)上我利用业余时间制作的几个试验小动画.
Jim还强调这不是一本入门书. 相反, 书中的内容应该以理论概念为基础, 讲解这些理论的各种实际应用方式. 我感到很高兴. 我经常会有一些有趣的设计灵感, 我希望将它们写出来, 本书以理论为基础的写作方式使我能够以足够的深度讨论我的这些想法.
这本书将使用ActionScript来创建动态的视觉效果, 按照理论概念来划分章节. 基本内容包括面向对象程序设计. 三角学. 坐标系统. 向量和基于事件的编程. 在充分理解了这些内容之后, 我们就可以探索运动. 物理. 色彩和形状. 我将尽量讲解这些领域的框架原则, 以及在ActionScript中实现它们的方法. Flash和ActionScript语言在未来几年中还将不断地发展, 我们用来实现脚本动画的代码无疑也会产生变化. 但是读者在本书中学到的技术, 以及关于数学和运动的经典理论, 在新的环境中同样适用.
本书的内容(章节介绍)
第I部分"预备知识"介绍塑造程序设计风格的个人经历, 以及程序设计方法的概念基础.
第1章"Flash信徒:过程和训练"是我的自传. 我将与读者分享我发现Flash的故事, 以及Flash对我的工作和生活的影响. 我还将讲述一些影响我处理日常事务的个人原则.
第2章"面向对象编程技术"是对面向对象分析. 设计方法和编程的介绍. 本章介绍了从项目需求到面向对象的代码的转换, 以及如何在ActionScnpt中实现类. 方法和继承等OOP概念.
第II部分"基本概念"概括基本的数学和编程理论, 包括第3-第6章.
第3章"Flash与数学1:三角学和坐标系"是创建ActionScript动画所需的数学基础, 也是后续章节(讲述向量概念)的基础. 关键概念包括角. 三角形. 勾股定理(毕达哥拉斯定理)和极坐标.
第4章"Flash与数学2:二维空间中的向量"讲述向量的概念及其在ActionScript中的实现. 还包括向量加法. 乘法. 点积和其他概念, 以及它们的代码实现.
第5章"Flash与数学3:三维空间中的向量"将前一章介绍的向量概念扩展到三维空间. 此外, 还包括三维坐标及其投影. 旋转的概念和相应的ActionScript实现.
第6章"基于事件的程序设计"介绍Flash MX中全新的事件模型, 以及它与Flash 5的不同之处. 这一章解释事件处理器和监听器, 还将讲解如何实现能够广播消息的自定义事件源.
第Ⅲ部分"动态视觉效果"在前几章的基础上扩展到运动. 物理. 色彩和形状的领域, 包括第7~第10章.
第7章"运动. 变形和缓动"讨论运动的概念和数学基础. 探究缓动的各种方程, 并开发一个变形脚本的面向对象的方法.
第8章"Flash与物理学"介绍力学的关键概念, 如加速度. 摩擦. 力及波的特性等.
第9章"ActionScript的颜色控制"介绍使用Flash的Color类通过代码进行图形的动态着色的多种方法.
第10章"ActionScript绘图"介绍Flash MX Shape Drawing API绘制线段. 曲线和着色, 演示如何扩展该API以绘制更复杂的形状.
第Ⅳ部分"综合实例"包括第11~第14章, 深入探讨了4个试验动画:
第11章"作品1:北极光"介绍一个交互式的二维粒子系统, 它模拟了北极光.
第12章"作品2:暴风雪"介绍一个根据下落的雪花建立模型的三维粒子系统.
第13章"作品3:分形树"介绍一个自相似的分形树, 它能够响应鼠标交互, 可以录制并回放运动画面.
第14章"作品4:龙卷风"介绍一个能够生成交互的龙卷风的粒子系统.
如何阅读本书
本书各个章节的内容循序渐进, 后面的内容以前面的内容为基础. 但是, 有些概念可能要在阅读了相关的内容之后才能完全理解. 因此, 我建议读者通过反复阅读和前后对照的方式来阅读本书.
本书的网络资源
本书涉及的源文件可以在出版商的Web站点http://www.osbome. com和我的个人站点http://www.robertpenner.com/profinx/上获得.
Robert Penner