本书透彻地讲解了Flash组件开发、Flash游戏开发,以及SWF文件加解密与Flash文件综合性保护这三个话题。
“弥赛亚之书”和“逆水游的鱼”两位作者所写的部分包含上述所有三个话题,分为四部分:第一部分详述了组件的概念、应用和制作方法;第二部分讲解了SWF文件的保护与加解密;第三部分以完整的Flash游戏设计流程(包括策划、美术和脚本编写)来阐述如何创造新颖的系统、展现优美的艺术、培养良好的编程思想、编写规范精简的代码,以及所有这些相互之间是如何和谐搭配的;第四部分则由浅入深地提供了三个游戏制作实例,分别侧重于不同的知识点,务使阅读本书的每一位读者都能全面而系统地掌握相关重点。
“HBrO”所写的部分只涉及Flash组件开发。包括Flash组件的概念和发展、V2组件的策划与编写、组件中类的实现、如何在组件开发中贯彻用户体验、组件太胖的原因及减肥方案,并给出了多个极为实用的组件开发实例。
“fanflash”所写的部分只涉及SWF文件加解密与Flash文件综合性保护。包括SWF的保护与加密、SWF的解密与取消保护,以及在通过SWF传输数据时如何防止服务器端数据被盗用或篡改。
本书在语言上力求体现简洁、准确又不乏幽默的风格,使读者能够在愉悦中学习令人激动的技术。
展开
“弥赛亚之书”和“逆水游的鱼”致本书读者:
Flash作为当今流行的开发平台,受到越来越多朋友的青睐。我们不仅使用它进行动画创作,更能够通过它来进行交互式应用程序的开发。这款集成多种媒体形式和设备,并且能够面向对象编程的软件,使更多非专业用户展示自己非凡的创意成为可能。最明显的例子即体现在使用Flash开发游戏。我们两人于2005年底相识,跨越了地域的限制组建了“GameWitch工作室”,致力于进行艺术性和娱乐性兼备的Flash游戏开发,也获得了一定的成绩。然而仅仅自己的探索是不够的,这个环境需要大家共同地营造和维持,需要更多的新鲜血液来共同努力。
我们希望所有人都能发扬DIY(Do It Yourself)精神,勇于加入这一行列中来。尽管“GameWitch工作室”还不是十分成熟,但也在不断的尝试中积累了一些经验。我们一直希望能够通过某种方式理清思路,从而系统地、完整地把自己所学到的经验发布出来,让更多人分享。
机缘巧合之下,本书的策划编辑陈冰与我们取得了联系,并且提供给我们这次机会。陈冰编辑是一位知识全面并且要求严格的高手,同时也很有耐心,他理解我们在业余时间写作的艰难,给予我们充沛的时间创作和修改,并且经常地提出建议和鼓励。最后本书终于在严格的要求下出版并展示在大家面前。我们必须承认,它诞生期间的种种酸甜苦辣,是在一开始所没有想象到的,我们所经历的挫折和挑战,在今后也会使自己获益良多。
我们将先为大家讲解组件的概念、应用和制作方法,然后再叙述文件保护与加密的理论知识。在第三部分,我们将以完整的Flash游戏设计流程(包括策划设计、美术设计和脚本设计)来阐述如何创造新颖的系统、展现优秀的美术、培养良好的编程思想以及编写规范精简的代码。而同样重要的是,我们还会说明这些又是如何和谐地搭配的。本身Flash的开发门槛就不是很高,而且通过本书详尽的解释,我们相信大家一定能通晓其中的奥妙,从而创作出自己精彩的作品。为了确保大家的学习效果,在本书中出现的所有重要源文件都在随书光盘中提供,您在遇到困难时可以随时对其进行研究。
我们希望通过本书能为广大Flash爱好者们踏上更高台阶而做出自己应有的贡献。
如果大家在阅读我们所写的这部分时产生疑问,可以通过我们的电子邮箱与我们联系,我们肯定会尽力帮助大家。
游戏策划/美术/音效方面
弥赛亚之书:mess79@163.com
游戏脚本编程方面
逆水游的鱼:hardean@163.com
弥赛亚之书(向怡宁)
逆水游的鱼(夏德安)
2007年3月11日
“HBrO”致本书读者:
随着网络技术的发展,Flash的受欢迎程度也日渐提高,为了满足不同闪客的要求,Flash在几代的升级过程中,功能逐渐趋于完善,在Web交互式动画的应用方面表现得尤为明显。
组件的诞生是Web交互程序功能增强的重要体现之一。组件不但具有面向对象的基本特点,还可给开发者带来良好的用户体验。从Flash 5的智能剪辑到Flash 8的V2组件,组件的发展既使得其结构完善化,也使得用户体验更为优化。
然而,组件,特别是Flash自带的V2组件,体积肥大,不方便网络传输,使得闪客在开发网络应用时对其既爱又恨。
我学习Flash有三年多了,对Flash代码可谓情有独钟。自己写过不少程序,同时也与别人合作过一些项目。在合作的过程中,我发现尽管自己熟练于代码的编写,但在团队协同开发中仍然存在很多问题。
首先,类似的代码,有时仅仅为了要做一些很小的修改,设计师也不得不把我找过去。另外,很多情况下代码必须运行起来才能看到效果,这也让设计师布局时感到特别头痛。
为了解决这些问题,我开始了对组件技术的研究。并在接受了本书策划编辑陈冰的邀请后开始了本书我这部分内容的创作。不得不承认,虽然在写作本书前,我对组件已经研究和使用了许久,但很多内容仍然是在写书的过程中才学到的。陈冰说“写书是一次难得的完善自己知识结构的机会”,我对此深有体会了。
本书假定你是一位了解基本的ActionScript编程语法,但是对组件开发尚未涉足的读者。我将从组件的发展史开始讲起,让大家对组件有个初步的认识。然后重点介绍V2组件的特征、类的绑定、用户体验等内容。
为了让读者们能及早享受到开发出一个组件的成就感,从第3章开始就结合组件开发技术进入实例的制作讲解。在我所写的这部分内容中,实时预览和自定义用户界面,即第4章的内容是我最满意的部分。该部分让大家了解到组件在类特征以外的一些优点,其中很多内容都为大多数组件开发教程所忽略了,甚至有的内容已在V2组件的诞生过程中失传。作为组件自身的特色,希望大家认真阅读这部分,不要跳过。
在大家对组件开发的基本技术上手后,可能大家会发现我没有使用常规的组件开发步骤来制作组件,并对我的讲解表示质疑,但相信在你看过我对组件体积肥大原因的分析后,你就会明白我为什么不采用常规的组件开发方法了。但我在写书的过程中,忽略了对这个原因的解释,只好在这里说明一下了,不便之处,还请大家谅解。为此,我又给大家补充了一个源文件(放在随书光盘的“源文件\HBrO\前言”文件夹中了),这个源文件是按常规步骤制作的,功能简单但体积较大。
另外,在交稿后我感觉自己对组件的使用方法讲解得还不够详细,虽然本书重点在开发,但使用是开发的目的,不好好说一下似乎离本书的完成总有一步之遥。如果在这方面有什么疑问的话,欢迎读者给我发邮件,我会及时给大家回复的。
最后,作为团队开发的重要利器,组件的开发更需要在成功的策划下完成,这样才能体现出它应有的意义。所以,在本书我所写的部分的最后两章中,我结合组件的开发过程,简单介绍了如何策划一个组件,策划时应该注意的问题等。但毕竟我不是策划出身,大家若有更好的想法,不妨发邮件来交流经验。
希望各位闪客能通过本书对Flash的开发有更深入的认识,更好地运用已有的知识开发出属于自己的作品,创出自己的一番事业。
如果大家在阅读我所写的这部分时产生疑问,可以通过我的电子邮箱与我联系,我肯定会尽力帮助大家的。
我的邮箱:chemistric@163.com
HBrO(游志德)
2007年4月9日
"fanflash"致本书读者:
随着Flash版本的不断更新,功能越来越强大,广大的开发者们已经将它应用于互联网的各个方面——在线应用程序、连线游戏、网站、动画等,因此,SWF也成了一种十分有价值的资源,我们已经从它身上看到了单机程序发展的影子——“破解者”出现了。随之而来的就是开发者们对SWF文件的保存工作越来越重视,就这样,单机软件破解与加密的攻防大战也在Flash上重新演义了。
如果说单纯的破解与加密,我认为这只是技术上的对垒,并没有谁对谁错之分,并且我认为这 也是自然现象,一种技术上的优胜劣汰。只有这样,技术才会进步。现今的网络、软件安全技术都 是在这样的对垒中发展起来的,因此我们可以把破解技术和加密技术公开地来讨论,这样并没有什 么不好,因为有交流,才会有进步。因此,我希望大家如果有什么新的想法可以在我的网站(http://www.fanflash.cn)上面留言,互相交流一下大家的心得。
Flash的加密与破解并不像其他软件那样那么有广度和深度,因为Flash本身的内容相比起Windows应用程序来说实在少得可怜,因此,Flash的加密和解密技术是相对易于掌握的。基本上只有从两个方面入手:一个是从外部文件入手,我们的方法通常只有一个,使用SWF文件的加密软件或破解软件。当然,你也可以手动使用一些十六进制软件来对SWF文件进行操作,但是这种方法实在不够大众化,并且目前很少有一个SWF能有让你耗费大量时间和精力使用十六进制软件专门进行加密或破解的价值。另一方法就是内部编程了,我相信每一个对Flash和ActionScript熟悉并且知道其运行方式的朋友都可以想出许多方法来破解或加密一个SWF文件,我也是一个对ActionScript比较熟悉的人,所以我把我的一些经验和心得记录在这本书里,但是我的方法不一定是最好的,更不是唯一的,大家只有更加熟悉ActionScript才能想出更好的加密或破解方法。
本书中我所写的这部分内容共分三章:第1章是SWF保护与加密,在这一章中先是介绍了几款常用的加密软件,然后介绍了怎么在内部编写代码从而防止别人使用你的SWF文件;第2章是SWF解密与取消SWF的保护,同样地,先是介绍了几款常用的破解软件,然后介绍了怎么编写程序来破解SWF内部的程序限制;第3章是针对目前的SWF数据交换的安全性这一话题的,我在书中向大家演示了一种相对安全的交换数据的解决方案。
因为本书的内容涉及到Flash程序的一些特殊的用法,因此可能会产生一些不同的见解或疑问,为此,大家可以将有关问题发送到我的邮箱(fanflash@msn.com)或在我的网站上留言或讨论,我将热情地解答并参与你们的讨论。
fanflash(高帆)
2007年4月7日