本文是Flash网站工作流讨论的模式篇,没看过前两篇的朋友先要去补一下课:)

Design Patterns(设计模式),对从事Flash开发的人员相对而言是比较难的知识点。从早期的ActionScript脚本一路走过来的Flash工作者很少有系统地学过成熟的OOP开发思想。包括我自己在内也一直都是半知半解,所以太专业的理论我也说不上,就尽可能的挑些容易理解的来说明一下,希望能够对进阶的开发者有所帮助。

通过RobotGaiaAnt快速构建出的网站结构已经包含了基本的网站开发模板(src目录下),在进行开发之前你需要了解以下几点:

  1. 这个结构是基于Gaia+Robotlegs+AS3 Signals(lib目录下)建立的,你需要熟悉这些API。
  2. 代码按照MVCS模式来进行组织。如果你还不是很理解这种设计模式,可以翻看我之前写的这篇这篇。对Robotlegs的机制还不是很了解的,推荐看看eidiot的这个文档,还有他翻译的中文最佳实践
  3. 然后你需要了解的是每个部分的职责分别是什么,不同的代码应该写在什么模块中。具体的指导做法就下载我这份文档学习一下吧。

pattern

明确基本流程以后,我们再来看看开发框架。网站这档事不像正规的软件项目,需求有可能千奇百怪,不同网站之间的差别非常大。要在这样的问题上抽象出一个合理的开发框架是非常有水平的工作。相信每个成熟的程序员都有自己习惯的基础框架。就开源范围来说,目前我所知道的针对网站开发需求而建立的Flash框架只有GaiaProgressionSoma

日本人开发的Progression功能虽然强大,但是其代码的书写方式不太适合我的习惯。而且有很多是日文注释,很难看懂,于是放弃。Gaia是我去年推荐过的框架,也用它作过一些网站。在功能上和Progression相差无几。好处是文档非常完整,看完就能上手。问题是Gaia的自动化建站(Scaffolding)功能是通过Flash的面板来实现的,而且使用了文档类的编译方式。依赖于Flash IDE这点和我理想中的软件分离的流程有冲突。所以后来我又比较了一下Soma。Soma基于AIR和Java的发布机制非常棒,但是用的人比较少,更新也比较缓慢。

正当我还在做比较和选择的时候,在Gaia的论坛上发现了有老外开发了用于Gaia框架建站的Ant脚本。经过几天尝试和修改,包括与作者之间的直接沟通,最终确定了我想要的解决方案:用Ant来发布Gaia。

基于这套机制,我在Github上建立了一个RobotGaiaAnt项目:Robotlegs+Gaia优秀的框架结构+Flex快速的编译能力+Ant批处理,基本上可以实现10分钟完成一个网站原型的宏伟目标。有兴趣的开发者可以下载下来做一下尝试,参考下面提供的教程应该能够快速上手。

(运行环境需求:Flex SDK + Eclipse + FDT)

pdf download
PDF教程下载

Project Scaffolding
视频教程1:如何使用RobotGaiaAnt搭建网站架构

Run and Debug
视频教程2:如何测试单个文件

SWC from Flash to FDT
视频教程3:SWC from Flash to FDT

vimeo link:123

大家有什么问题或者需求建议欢迎与我共同探讨。直接来ES找我也行,我们在找有想法的Flash创意开发人员加入哦:)

2010-03-25_00623

我一向对流程优化的主题(不论是设计还是开发)比较感兴趣。关于Flash的工作流程的讨论在互联网上一直没有中断过,我也会常常记录下来作为借鉴,结合自己的情况做调整。不同的流程可能适用于不同的情况(Flex RIA、Website、Game…),有优点,也必然有缺点。最近研究完设计模式后突然有了把流程规范化的打算,正好也可以把团队的协作方法重新梳理一遍。

细化与分工是一个行业成熟的标志。早期的Flash从业者既是设计师,又是程序员。随着项目代码的复杂度越来越高,专业的分工是必然的趋势。只有让有不同专长的人做自己专业内的事,才可能提高工作效率和作品质量。有分工就必须有流程的指导。好的流程应该能够让设计师与程序员独立并行地工作,减少协作中可能出现的各种问题。

首先在工具上,两者就需要有所区分:Flash IDE完成设计部分,Flex/FDT完成开发部分。抛弃在Flash IDE中书写代码的习惯是一个Flash程序员进化的标志。任何一个专业的程序员都无法拒绝优秀的代码编辑器的诱惑。

接下来是考虑设计与开发如何衔接的问题。感谢SWC的出现,让我前面提到的软件分离成为可能。通过SWC格式作为软件之间的沟通桥梁:Flash设计师不需要接触代码文件,仅仅只是设置一下资源导出。程序员甚至都不需要打开Flash IDE来设置文档类、类绑定。通过把继承的方法换为复合,程序拥有了更大的灵活性。

我针对这一工作流程给团队做了一次培训,包括一些具体的做法与建议。如果你也有兴趣,可以下载来看看。

image

这个流程只是根据我们做网站Flash设计和开发的需求做了总结。 感谢互联网上无私分享的人们:

PS. 期待CS5的发布,期待Catalyst在RIA流程中扮演重要的角色。

Powered by KevinCao.com ©2010 | Platform: WordPress | Theme: Motion
kevincao.com