前言
2005年,许多网站相继加入AJAX应用。AJAX是可以创建更好、更快和交互性更强的Web应用程序的技术,基于此技术,互联网应用程序可以变得更完善、更友好。AJAX最开始代表异步请求和局部刷新,后来演变成为网页里一切好玩的东西,它拉近了Web程序与桌面程序的距离。
到了2007年,W3C针对是否接纳HTML5进入标准审核程序的提议进行了投票,多数人表示赞成。后来,W3C承认HTML5是正式标准。HTML5是近10年来Web标准最巨大的飞跃,和以前的版本不同,HTML5并非仅仅用来表示Web内容,它还提供了Canvas、WebGL、Audio、Notifications、LBS、WebSocket、SVG、Storage、Web Workers、IndexDB、FileAPI等重要元素,每个标签都有其相应的开源项目,且可以独立成书。HTML5的使命是将Web带入一个成熟的应用平台,在这个平台上,视频、音频、图像、动画、存储,以及与计算机的交互等都被标准化。如果说AJAX是在拉近Web程序与桌面程序的距离,那么HTML5即将抹去Web程序与桌面程序的差距,没人能阻止开发者将桌面程序搬到网页里。Web APP的时代已经来临,HTML5正在重塑一个崭新、绚烂的Web世界。
本书使用HTML5的Canvas作为实验平台,JavaScript为编程语言,进行了大量的粒子实验、物理实验、3D实验、像素实验和文字实验,然后带着读者从实验走向实战,带领读者一步步制作一个物理引擎,最后带领读者制作一款完整的HTML5游戏。
本书介绍的每个实验都可以移植为Java、Objective-C、C++或者ActionScript版本,也可以移植到XNA或者Silverlight上,等等。所以本书面向的读者,不仅仅是前端开发工程师,也适合游戏开发人员、大学生或者高级美工阅读。本书同样适合对视觉艺术、计算机图形学、物理、数学(特别是线性代数)感兴趣的读者。本书所有代码都经过严格的测试和反复的使用,读者可以放心使用,如有任何问题及疑问,请邮件联系mHTML5@qq.com。
关于本书代码及演示
本书是一本以实践为目标的图书,包含大量的物理、数学和计算机图形学的集成实验,每个实验的设计思想以及核心算法均辅以对应的代码示例。本书不包含任何伪代码算法描述,全部代码均采用JavaScript语言加以实现。
本书代码提供了理解算法问题所必需的细节,并辅以大量的分析图片,展示了解决问题的核心推导步骤,读者可以在支持HTML5的浏览器(如IE9及以上版本、火狐浏览器、谷歌浏览器、Opera等)中运行相关代码并查看呈现结果。读者也可以改变代码中的一些核心参数或者变量的值,然后执行代码,查看其结果的变化,这对于不熟悉算法、数学思想和调试的读者尤为重要。
虽然本书的代码示例采用的是JavaScript语言,但是需要强调的是,其他计算机语言都可以完成本书介绍的所有实验。需要注意的是,本书中的示例代码并非最终版本,虽然所有代码都经过反复使用和严格测试,但是不能保证其没有重构的空间,读者在理解其核心思想和架构的基础上可以自己进行相应的重构。
本书中的所有代码按照章节依次分类,可在电子工业出版社官网(www.phei.com.cn)下载,也可以向编辑索要(yangbo2@phei.com.cn)。书中介绍的每个实验都包含一个或者多个演示文件,详细展示了整个实验的制作过程,让读者循序渐进地理解其算法和思想。读者可以用各种文本编辑器或者IDE(如notepad、notepad++、Visual Studio、sublime text、aptana studio、Web Developer Express或Expression Web等)打开查看。
作者
2012年4月