1.1 MFC与Flash联合界面开发技术

本节将对MFC与Flash技术进行介绍和分析,指出在界面开发方面MFC技术的不足、Flash技术的优势与两者进行结合所带来的好处——能够保证程序运行效率、提高界面易用性和降低工程复杂性。

1.1.1 MFC技术及其不足

MFC,全称Microsoft Foundation Classes,是微软公司旗下的一套Windows平台C++应用程序开发框架。该框架虽然简化了Windows应用程序的开发工作,并且提供了很多现成的界面控件,但是,在富媒体时代的今天,MFC在界面的设计实现方面与现行流行技术相比仍然显得能力不足。不足的根本原因在于,C++更适合应用于具体的底层运算而不适合抽象的界面设计,这种“错位”使得开发者需要将大量精力浪费在语法上而不能专注于界面开发——软件开发也要讲“门当户对”,即语言和应用领域在抽象层次上的对应;另一方面,微软公司的商业策略之一是在某些方面故意隐藏实力以吸引开发者前来改进或进行二次开发,从而保证和扩大用户群体规模——因此可推知,虽然MFC确实具备强有力的开发能力,但本身提供的控件只是“幌子”,并不实用。

1.1.2 Flash技术及其优势

Flash技术诞生于20世纪90年代初,经过近二十年的发展,由动画制作工具成长为庞大的软件开发技术平台,拥有面向对象编程语言(ActionScript)、虚拟机(AVM)、集成开发环境(Flash Professional、Flash Builder等)、运行引擎(Flash Player)、通信协议(RTMP、AMF)、服务器(Flash Media Server)、服务端脚本(ColdFusion)、中间件(LiveCycle、BlazeDS)、开发框架(Flex、Starling、Robotlegs等)、协助工具(PhotoShop、PixelBender、AfterEffect、Flash Catalyst等),以及遍布全球的合作伙伴和开发社区,具有跨平台和跨屏幕的能力,现为Adobe公司所有。Flash技术的发明者乔纳森•盖伊赋予Flash技术的核心精神是“将人类的思想在计算机上可视化表示”。

Flash技术将软件设计与开发工作有机整合起来,在人机交互方面的优势尤其明显。Flash技术平台是由C++和汇编语言开发而成的,其自带的ActionScript3语言本质上是对C++语言的一次封装,去除了不必要的语法,并具有了一套强大的API,可以实现丰富的动画效果,支持3D、GPU加速、多线程等功能,有极强的图形图像渲染能力,还可以方便地访问摄像头、麦克风等二级输入设备和进行本地、网络通信,触角广泛。以上这些,都使得开发者能够“站在巨人的肩膀上”专注于界面设计和开发工作并有充分的精力和能力来提升用户体验,这也就是Flash技术更适合从事人机交互开发的原因。

1.1.3 MFC与Flash联合界面开发技术

“MFC与Flash联合界面开发技术”是本文提出的称谓,特指通过在MFC中使用名为“Shockwave Flash Object”的ActiveX控件,将Flash与MFC相结合的技术。虽然Shockwave Flash Object控件并非Windows操作系统原生控件,而是计算机在安装Flash Player时自动安装的,但就Adobe公司发布的数据显示,Flash在以Windows为操作系统的PC平台上装机率几乎是100%,而MFC程序本身就是面向Windows平台的,这就保证了该联合开发技术可以被广泛应用于Windows平台。该技术在保证了MFC程序运行效率和可执行文件格式的基础上,借助Flash在多媒体方面的丰富表现力提升了MFC在交互式界面开发上的能力。