3. 实战策略
确定了FlashNow!的功能需求之后,接下来就是系统设计的工作。很简单,“怎样解决用户需求所提出的问题”,“在多种解决方案中,哪一种方案最合适”,如此如此,就是具体的系统设计的过程。系统设计一般分成概要设计和详细设计,大抵是“逐步求精”的思路。
如何设计我们的FlashNow!呢?不要慌,我们从系统流程设计、系统模块设计和系统类设计三个方面入手。
3.1 系统流程设计
FlashNow!包括两个重要的流程,用户可以直接启动FlashNow!,或者从一个.swf文件关联过去;另一种方式,用户可以从文件夹的Shell菜单中选取“启动FlashNow!动画浏览器(F)”来启动FlashNow!,对应于不同的系统入口,FlashNow!的系统流程设计如下:
流程一(浏览视图):
流程二(查看视图):
流程很简单,但愿软件实现起来也同样的简单。
3.2 系统模块设计
总体来说FlashNow!可以分成以下几大模块:
² Flash动画播放控制模块
包括动画播放(Play)、停止(Stop)、跳转(Seek)、拖放(Drag)、放大(ZoomIn)、缩小(ZoomOut)、全屏显示(FullScreen)模块;包括动画循环播放、画面质量和动画背景色设置等模块;
² Explorer文件目录树模块
包括Explorer文件目录树(ShellTree)的显示、操作模块;包括跳转上级目录、前进、后退等模块;
² Explorer文件列表模块
包括Explorer文件列表(ShellList)的显示、操作模块;包括文件删除、更名、预览模块;包括文件信息显示、排序模块;
² Flash动画文件操作模块
包括动画文件顺序播放、文件跳转、本地/远程文件保存、文件格式转换模块;
² ShockwaveFlash控件自动检测安装模块
包括ShockwaveFlash控件自动检测模块、安装模块;
² 系统设置模块
包括用户系统设置、系统关闭和启动时自动保存和载入系统配置模块;
这六大模块具有交错的部分,例如Explorer文件目录树模块和Explorer文件列表模块,当用户选取目录树其中的文件夹时,该文件夹下的文件列表也要相应地显示出来。
3.3 系统类设计
类设计是更具体的面对对象(OO)的系统设计。
对应于系统流程与系统模块,FlashNow!系统类设计列表如下:
² 应用类
CFlashNowApp:FlashNow!应用类
² 框架窗口类
CBrowserFrame:浏览视图框架类
CViewerFrame:查看视图框架类
CBrowserFolder:Explorer文件目录树视图类
CBrowserList:Explorer文件列表视图类
CFormBar:地址栏类
CLogoBar:广告条类
CViewerClient:查看视图类
CDropDownToolBar:支持下拉菜单的工具栏类
CViewerToolBar:动画播放控制工具栏类
CNavigatorToolBar:Explorer文件目录树操作工具栏类
CProgressStatusBar:显示动画装载进度的状态栏类
² CShell*类:Explorer实现类
CShell:Shell文件基础类
CShellTree:Shell文件目录树类
CShellList:Shell文件列表类
CShellTreeItemData:Shell文件目录树项数据类
CShellListItemData :Shell文件列表项数据类
² 应用数据类
CHistory:Explorer历史类
CHistoryRecord :Explorer历史记录类
CStringQueue:字符串队列类
CUserData:系统配置数据类;
² Flash动画操作类
CShockwaveFlash:ShockwaveFlash控件窗口类
CFlashWnd:ShockwaveFlash控件窗口扩展类
CFlashOCX:ShockwaveFlash控件自动检测安装类
² 对话框类
C2HtmlDlg:HTML文件输出对话框类
CAboutDlg:About对话框类
CFileOpenDlg:文件打开对话框类(支持动画预览)
CPropertyDlg:动画属性对话框类
CSetupDlg:系统设置对话框类
以上枚举了FlashNow!的所有类,完整的类设计还应该还包括类的属性方法的原型定义,限于文章篇幅,在此略去;对于其他项目,可能的话,还要进行系统的数据库设计,FlashNow!没有这方面的需求,亦略去。
系统流程设计、系统模块设计和系统类设计只是系统设计的部分内容,以上的内容也仅仅属于系统概要设计的层次,系统详细设计还需要对这些系统流程、系统模块和系统类设计进行更进一步的细化。
系统设计的辅助工具很多,常用工具有Microsoft Visio、Sybase PowerDesigner和Rational Rose等等,图6为使用Microsoft Visio进行系统设计的工作界面。
![[原始尺寸:800x600 点击查看大图]](/upload/2004/04/1047343490863.png)
图7 使用Microsoft Visio进行系统设计
值得一提的是,系统设计主要还是大脑的活动,辅助工具毕竟只是工具,好的设计方案即便使用Microsoft Word——或者更简单些——圆珠笔和一些小纸片(但要保证能正确地表达你的思路)都能奏效。笔者在此不再展开,我们继续以下的实战过程。