Flash是一种交互式矢量多媒体技术,他的前身是Futureplash,后来由于Macromedia公司收购了Future Splash以后便将其改名为 Flash。Futureplash是世界上第一个商用的矢量动画设计软件,上世纪90年代广泛应用于microsoft.com这样的大型网站部署在线交互动画以及迪斯尼(Disney)和梦工厂等动画公司生产2维动画,正是因为这种高端应用,flash的创造者们为flash提供了一些可执行的脚本指令与扩展接口以适应不同公司工业级动画制作流程和网路上的用户交互,这为flash成为一款既具备开发能力又具备设计能力的与众不同的软件奠定了基础。
Flash从2.0版本开始逐步完善它的脚本语言(action script 1.0),这些语言在早期的flash中能够控制影片播放并且绘制图形,实行人机交互.2000年8月Macromedia 推出了Flash5.0,并推出了全新的actionscript 2.0语言,这是actionscript的一次飞跃,flash5.0 开始了对XML和Smart Clip(智能影片剪辑)的支持。ActionScript的语法已经开始定位为发展成为一种完整的面向对象的语言,并且遵循ECMAScript的标准,就像javascript那样。在后来的FLash 6.0,flash 7.0版本中,Macromedian为Flash加入了流媒体(flv)的支持,使flash可以处理基于on6v编解码标准的压缩视频。Flash8.0版本增加了位图滤镜功能,从8.0版本开始,Flash已不能再被称为矢量图形软件,因为它的处理能力已延伸到了视频、矢量、位图和声音。
2006年,Macromedia被Adobe收购,由此带了了flash的巨大变革,2007年3月27日发布的Flash9.0成为了 Adobe creative studio cs 3.0中的一个成员,与 Adobe公司的 矢量图形软件illustrator和被称为业界标准的位图图象处理软件photoshop完美的结合在一起,三者之间不仅实现了用户界面上的互通,还实现了文件的互相转换。当然更重要的是,Flash9.0支持全新脚本语言actionscript3.0,actionscript3.0是flash历史上第二次飞跃,从此以后,actionscript终于被认可为一种“正规的”、“完整的”、“清晰的”面向对象语言。新的actionscript包含上百个类库,这些类库函盖了图形、算法、矩阵、xml、网络传输等诸多范围,为开发者提供了一个丰富的开发环境基础。随着actionscript3.0而来的是新的Flash RunTime虚拟机(VM2.0),VM2.0的运行效率是VM1.0的10-15倍。
Flash player并不是传统意义上的媒体编解码播放器,flash player是一个标准的虚拟机,用来解释运行actionscript和显示包含在swf中的各种图形资源。与.net framework和java runtime不同的是,flashplayer是基于流形式读取并执行swf文件,在基于timeline的swf中按照时间帧顺序运行每一帧的程序。这使得swf文件在网络上的传输更加高效。在经过长期的实践检验之后,开发者普遍认为,在timeline上进行用户界面的开发更加清晰和直观,或许它将成为一种新的应用软件开发潮流,因为用户体验流程在未来的软件开发中越来越重要。(事实上,有很多软件的开发就是通过画“故事板”实现的,timeline 就是“故事板”所集合成的流程)。
Flash player目前在全世界计算机上的普及率达到98.8%,这是迄今为止市场占有率最高的软件产品(超过了windows、dos和office以及任何一种输入法),通过flash player,开发者制作的flash影片能够在不同的平台上以同样的效果运行,目前,在包括 sony psp以及ps3系列,microsoft xbox系列,microsoft windows mobile 系列的pc和嵌入式平台上,都可以运行flash.业界普遍认为flash下一个主要应用平台将出现在移动设备上,新款的LG“爱巧克力”手机是一个开拓者,它完全使用flash作为手机操作系统的用户界面。
Adobe不断发掘flash的潜能,基于如此广大的flash player市场占有率,adobe开发了许多延伸产品,比如网络视频会议系统,协同办公系统,销售支持对话系统等,2006年adobe还发布了新的swf开发平台 FLEX, FLEX是面向传统程序员的flash开发工具,FLEX基于IBM eclips, 包含有比flash更强劲的矢量用户界面组建系统和全新的XML扩展标记语言,开发者使用FLEX可以快速部署被称为下一代互连网核心应用的RIA系统(Rich Internet Application),设计有良好用户体验和丰富交互特性的网站。与Flash相比,Flex更适用于开发大型项目和更加注重代码编写。与此同时,号称Adobe对抗microsoft .net的战略性产品 Apollo也即将发布,Apollo是一种actionscript 3.0语言的桌面应用程序开发环境。同时它的runtime还支持XML和javascript、HTML,也就是说,开发者使用Apollo平台将能够像编写网页一样编写桌面应用程序。
虽然Flash现在已成为事实上的互连网多媒体标准,但随着下一代操作系统microsoft vista的发布,flash的前景开始逐渐黯淡,microsoft抛弃了GDI、GDI+和MFC,为vista开发了一套全新的图形子系统WPF, WPF是建立在 DirectX 10.0之上的矢量图形系统,几乎具有Flash runtime的全部功能,而且由于Direct 10.0是显卡资源的图形接口,WPF生来就具有flash无法比拟的效率。如果说在vista以前运行3D和矢量界面需要在特定的虚拟机和窗口之内的话,那么在vista中,整个屏幕就是一个3D矢量界面,而且它的效率比flash高100倍。开发矢量动画或矢量界面将不再需要任何其他runtime或activeX的支持。
macromedia被Adobe收购之后,flash和fireworks开发团队一部分核心人员投奔了microsoft,并开发了基于WPF的设计师软件套装 microsoft Expression, microsoft Expression被认为是microsoft的模仿之作,基本与现有的adobe三款拳头产品flex、illustrotor、dreamweaver功能重叠,其中基于xml的microsoft Blend 几乎和flex同出一辙,由此可以看到microsoft开始阻击adobe,为他的WPF/.net framwork3.0战略扫清障碍。
不管未来将会如何发展,矢量图形界面已被公认为是未来操作系统/网站/应用程序/RIA的发展方向,矢量图形界面能够给用户带来更丰富的交互体验,基于矢量图形的用户界面设计与开发将在未来成为数字艺术领域的一个越来越重要的分支。VISTA是一个纯粹的矢量图形界面操作系统,它在用户界面上的先进性已经展现得淋漓尽致(flip3D, aero glass等),或许再过2年,当vista逐步普及之时,就是矢量图形的用户界面设计与开发产业蓬勃发展的时候了。不管将来FLASH是否会继续保持着主流地位,我认为从现在开始学习并掌握WPF/FLASH/FLEX/BLEND 这些未来会广泛使用的开发工具是保持个人竞争力的一个好方法。