以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Java/Eclipse 』 (http://bbs.xml.org.cn/list.asp?boardid=41) ---- 节选与书评:巨富客户端—桌面Java应用的动画与图形特效开发 (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=53693) |
-- 作者:hongjunli -- 发布时间:10/12/2007 4:36:00 PM -- 节选与书评:巨富客户端—桌面Java应用的动画与图形特效开发 http://www.infoq.com/cn/articles/filthy-rich-clients;jsessionid=DE9F571B8FF65A51A7D4E1BE6D837AF6 前面已经涵盖了许多Swing和2D渲染的基础,也讨论了基本的动画。这一章介绍的是定时框架(Timing Framework)类库,它让Java动画的编程变得更加容易。 概述 读者对象 我为什么感兴趣? 我必须承认,我并不特别喜欢为编写Java2D代码和扩展JComponents而弄脏自己的双手。我通常极其乐于依赖第三方提供的漂亮外观(Look and Feel),比如用Substance外观来给我的应用镀层金就很不错。我只想写出能工作的程序。不过,我也总是很享受视觉上吸引人的程序,因此我知道也应该给我的用户提供一点说得过去的体验。眼前的这本书就正是要教会开发者们如何去做。 内容介绍 全书19章分为4个部分: 图形与GUI基础 第1部分为图形的启迪之旅铺排了最基本的信息。本章中对Swing和线程的主题讨论恐怕是你所见当中最佳的。随后引导读者遍历了Java2D包中最有用的部分,这些都是你必须掌握的。最后讨论的是如何在Java的语境下理解“图像”的意义:各种图像类型,如何使用它们,以及如何最优化它们的性能。 第2部分才是真正进入了主题,这一部分给读者介绍了高级图形渲染技术。你在这一部分可以学到如何组合界面元素,建立色彩渐变,绘制图像的反射,以及给图像加上滤镜。这一部分也让你开始认识到Swing中GlassPane的威力,并学习如何使用Layered Pane。你看了这几章才开始认识到自己懂得太少。显然,为你点出理解之关键所在,并为你呈现出最佳的实践,这正是本书存在的意义。 第3部分讲述动画。就我个人的感觉,这部分读起来是非常有意思的。这种感觉有些出乎我的意料,因为我本以为自己对这个主题并不是那么感兴趣。这部分简要介绍了动画的各种概念,也介绍了Java平台中提供的各种动画工具,特别是关键的定时机制。这部分最后的两章节讲述了Chet编写的定时框架(Timing Framework)。这个框架的存在的意义是为了让动画和定时尽可能地简单。正如书中所指出,为了设置定时器和确定动画的当前进度,需要编写大量必不可少却又一再重复的代码。这个框架消除了无聊和乏味,而且提供了许多其它有用的类,来实现触发器(使动画开始的事件)和时间插值(定义整段动画中帧速快慢的变化)。作为一个类库来说,这是一个设计得干净整洁的API的极佳例子,它既非常符合自身的设计意图,又使得一个可能非常艰险的任务变得易于处置。 最后,全书的高潮在于第4部分,这部分讲述特效。在这部分中,你把前面3部分传授的知识综合到一起,并付诸实践——从这里你才真正开始去构建巨富客户端。其中一章展示了各种静态特效,比如模糊(用来在显示弹窗的时候弱化背景对注意力的干扰)、阴影、反光和高光。随后的一章讲述了动态特效,比如淡入淡出、脉动、弹簧和变形。紧跟着讲述画面过渡的一章特别有意思,它雄辩地说明了为何不应该突然地在各个画面间跳跃,而应该清晰地表明画面之间的相互关系。这一部分也给读者介绍了本书的第二个类库,叫做动画画面过渡(Animated Transitions),这个类库是专门设计来处理画面过渡的。而且,它也同样是一个经过深思熟虑的API,确确实实地方便了开发者加入这类功能。它让你实现起移动、缩放、淡入淡出和旋转等等标准效果得心应手,如果有需要,你还可以插入自定义的画面过渡效果。 可读性 公平地说,这本书并没有太过关注琐碎的细节,而从本书各个章节都十分易于吸收理解来看,这本书确实地证明了作者传达自身领域的专业知识的能力。文笔出色,图表也总是有所裨益,代码片断也运用得恰到好处。他们掌握了那种微妙的平衡,毫无疑问。显见的难点是作者不容易在静态媒体上图解动画和动态效果。为了能够最大程度地吸收这本书,你应该在演示例子和源代码上花些时间。 代码示例 书中展示的大部分源码都是摘自专门编写的演示程序,演示程序都可下载。源码按章分别打包成zip文件,还特别为在Netbeans中装载和运行做了准备。如果作者还能提供预编译的版本,比如一个WebStart程序,让读者按两下鼠标就能运行,那样就更完美了。可能我这人太过挑剔。 在本文写作的时候,并不是所有的例子都准备好了。第16-18章的演示还空缺着(顺便提醒读者,第19章没有任何例子),这几章涵盖的是各种桌面效果和画面过渡,缺了演示真是说不过去。这个问题还连带导致读者也没法获得动画画面过渡(Animated Transitions)类库。 总结 这是一本优秀的书:内行之作,步调清晰,解释详尽。它既不会迷失自己的主题,也不会在一个概念上纠缠太久。 本书没有涉及到Java外观(Look and Feel)的领域,对此我并不意外,但仍然有些沮丧。重复地为每个应用扩展各种组件并不是好的长期策略。从围绕即将面世的Nimbus外观的热潮可以清楚地看出,开发者和用户都对可以立即获得吸引人的界面感到兴奋。毕竟,哪怕你加入了各种画面过渡、阴影和反光,也没有人会用“酷”来形容Swing的标准Metal外观。我理解这是一个庞大的题目,也许不适合一并放入这本书里。不过,如果能加上一些这方面的参考和指点会让这本书更有意思。 除了前面小小的抱怨,这本书里还是有很多很多值得学习的内容。至于哪些改进适合自己的应用,就留给读者自己去尝试和决定了。我知道每当我看完书中描述的效果,都会忍不住一一尝试它们。作者一定知道他们的作品有机会让Java桌面旧貌换新颜。我们必须提醒读者注意不要做过了头,别让程序画面塞满了特效。不过,看到一本炫耀Java平台的卓越能力的书仍然是非常令人开心的。Java真的没什么理由不能征服桌面! 版权:本文节选的第14章来自新书《Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications》,作者为Chet Haase和Romain Guy,由Sun Microsystems Press属下的Addison-Wesley在2007年8月出版。Copyright 2008 Sun Microsystems, Inc。ISBN-13: 9780132413930。更多信息请参阅:[URL=http://www.informit.com/title/9780132413930]http://www.informit.com/title/9780132413930[/URL] 下载试读章节:[URL=http://www.infoq.com/resource/articles/filthy-rich-clients/en/resources/FilthyRichClients14_InfoQ.pdf]第14章[/URL] 查看英文原文:[URL=http://www.infoq.com/articles/filthy-rich-clients]Book Excerpt and Review: Filthy Rich Clients - Developing Animated and Graphical Effects for Desktop Java Applications[/URL]
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
7,851.563ms |