开发基于RIA的网站有很多种方法。对于和多媒体内容息息相关的业务和个人来说,Flash形式的网站尤其动人。Fosfr是一个ActionScript 3网站构建框架,专门用来创建Flash网站。InfoQ采访了Fosfr的创始人——Jeff DePascale,以深入了解Fosfr。
Q. 是什么驱使你开始开发这个Fosfr框架的?
A. 我大部分工作都跟小型网站开发相关。Fosfr最早是为了保证各网站的版本能保持一致。最初,AS2中有组特别的类严格控制站点的构建,Fosfr作为 AS3框架主要是以前面提到的那个类库为基础来扩展,给我所有的Flash构建——无论是小型网站,还是独立的SWF,或者是其它项目——提供了稳定、一 致的基础。
Q. 你为什么觉得会有AS3(或者说Flash)网站的需求?
A. 目前有两种对立的看法,一部分认为Flash有益于互联网的发展,另一部分人认为Flash只是让整个网络充斥着用户体验很烂而又无法被检索到的网站。就 我个人认为,每个技术都有各自发展的天地,非要说某种技术在像互联网这样迥异的媒体中比另一种技术更适合,未免有些误导。Flash有缺点吗?当然 有,SEO方面就是其中一个非常大的缺点。Flash有没有被用到一些不合适的场合?当然也有。但是,如果能有效应用它的长处的话,Flash能提供强大 的富用户体验,
Q. 你能概括下Fosfr的基本构架吗?
A. Fosfr的整体实现是一个三层SWF结构。一个是核心层,或者说是主SWF。这个核心层包含了预加载器,可以看作是项目的宿体。核心层之上是shell SWF,这里包含了所有通用的网站元素,诸如导航栏、脚注等等。最后,那些可变内容则放在子SWF文件中。
Fosfr的优点还在于它有用于生成文档的类库。Fosfr提供自定义文档类,所有.as文件都能得到扩展(包括外部类);它提供直至自动生成文档 这个层次的自定义方法,这些方法可以是为了调试、跟踪、导航,也可以是为了访问Fosfr的其它控件,比方说cookies、url信息等等。项目的任何 一个地方,你都能直接索引到fosfr对象,快速访问到框架的任何一个方面,可以访问到加载在项目中的所有SWF。
整个项目由一个外部XML配置文件来驱动,根据这个配置文件,能构从该xml文件本身直接访问Fosfr主要控件的所有属性。借助于自动生成文档的 类库的后台工作,只需要在每个.as文件中添加几行简单的代码就能实例化整个框架。只要几分钟,你就能得到可以立刻运行的一个功能完善的网站了。
Fosfr还能和Prequel集成使用,Prequel是我开发的一个预加载API;Fosfr还能集成SWFAddress,完全自动完成,不需要任何手动处理。通过Fosfr创建文档的类库来开发结合SWFAddress的子SWF的自定义功能会非常容易。
另外,如果你只需要一个SWF文件和一个对应的预加载器,那么可以只实现Fosfr的核心文件和shell文件,可以省去其中的导航 /SWFAddress功能;或者通过框架中的FosfrLite创建一个独立的SWF。FosfrLite也可以选择使用XML配置文件。
Q. Fosfr能和已有的CMS甚至诸如Wordpress这样的日志平台集成吗?
A. Fosfr的XML配置文件包含了一个专门针对自定义网站元素的结点。CMS或XML编辑插件直接与这部分xml配置交互的话,能够很容易操作在 Fosfr上创建的任何SWF文件的各个方面。目前还没有给Wordpress及类似平台专门开发插件的计划,但我会在以后的开发中实现此类集成。
Q. 开发Fosfr,你用的是什么开发工具?还有,Fosfr和Flex有关吗?要是没有,以后会把这两者结合起来吗?
A. 开发Fosfr,我用的是FlashDevelop,这也是这段日子以来一直在用的开发工具。在调试方面,我结合采用了集成在Fosfr当中自定义调试器和Flash播放器的标准调试器。目前我还没有任何计划要把Fosfr集成到Flex当中的计划。
Q. 你对Fosfr的前景有何规划?
A. 目前,Fosfr的版本上处于0.8。在推出1.0版本之前,我计划完成处理自定义事件和事件提醒的系统,在调试器上再多加一些功能,而且希望到时候还能 集成我正在抓紧开发的、更新、更强壮的Prequel版本。处于开发阶段、尚未结合在公共发布当中的模块还有tab管理和音频管理。我还计划开发另外的文 档管理类库来捆绑papervision3D站点的创建。1.0及其之后的版本将囊括这些特性,而且会不断添加新功能。就眼前来说,更重要的是确定什么是 目前要完成的,要编写快速入门指南,最好还要创建一个AIR应用把XML配置文件转变为向导。我希望开发人员能在半个小时以内就能轻松掌握Fosfr,而 且我觉得Fosfr能大幅度缩短产品的开发周期,这无疑是它的一大优势。但是如果没有快速入门指南和向导的话,这个优势也很难实现。Fosfr非常有用, 能够极大地缩短开发周期,但前提是你要懂得怎么去使用这个工具。我在不了解如何使用某个API的前提下直接去用这个API,还确实遇到过很多问题。 Fosfr在1.0之后就不会有这些问题。所以编写指南是目前最迫切的一件事。之后,我会发布完全值得信赖的1.0版本,会尝试让公众关注到这个项目,目 前我有意识地尽量把关注度控制到最小。
Q. 为什么要把这个开发框架叫作“Fosfr”?
A. 从技术上来说,它的全称是“Flash Open Source Framework”。然而,由于之前SWFObject和SWFFit因为名字当中有“Flash”这个词,在注册商标的时候遇到很多问题,所以现在严 格采用Fosfr。另外,这个名字厅听上去也很酷。
InfoQ会关注并且追踪报道Fosfr的开发进度。