使用Flash的数据可视化开发(Flash Data Visualization)

背景知识

进行Flash开发之前要先了解几个基础概念,RIA、Flash、Flex/ColdFusion、ActionScript和AIR。以及一些扩展开发工具,例如Flare。

RIA即指Rich Internet Applications。

Adobe Flash,前称Macromedia Flash,简称Flash,前身FutureSplash,既指Adobe Flash Professional多媒体创作程序,也指Adobe Flash Player。自从Macromedia公司于2005年12月3日被Adobe公司收购,Flash也就成为了Adobe旗下的软件。

ActionScriptMacromedia(现已被Adobe收购)为其Flash产品开发的,最初是一种简单的脚本语言,现在最新版本3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发,网页制作RIA应用程序开发。ActionScript 是一种基于ECMAScript的脚本语言,可用于编写Adobe Flash动画和应用程序。 由于ActionScript和JavaScript都是基于ECMAScript语法的,理论上它们互相可以很流畅地从一种语言翻译到另一种。不过JavaScript的文档对象模型(DOM)是以浏览器窗口,文档表单为主的,ActionScript的文档对象模型(DOM)则以SWF格式动画为主,可包括动画,音频,文字和事件处理

Adobe Flex是最初由Macromedia公司在2004年3月发布的,基于其专有的Macromedia Flash平台,它是涵盖了支持RIA(Rich Internet Applications)的开发和部署的一系列技术组合。Flex是通过java或者.net等非Flash途径,解释.mxml文件组织components,并生成相应得.swf文件。运用Flash是完全可以做到flex的效果的,为什么还需要flex呢?这里面有两个原因:1:为了迎合更多的developers(开发者)。 Flash天生是为了designer(设计者)设计的,界面还有flash的动画概念和程序开发人员格格不入,为了吸引更多的jsp/asp/php等程序员,Macromedia推出了Flex,用非常简单的.mxml来描述界面给jsp/asp/php程序人员使用.(x/d)html非常相似,而且mxml更加规范化、标准化。在做动画起家之后,Flash一直在谋求rich internet application(ria富客户端)的霸主地位,最有影响的是,已经推出了面向对象的编程脚本ActionScript3.0,并且建立起类似于java swing的类库和相应component(组件)。Flex的component和flash的component很相似,但是有所改进增强。

Flex最初版本的目标市场是企业应用开发,价格约 US$15000 每CPU。每个许可证包含五个Flex Builder许可证。Flex2改变了许可模式,开放其“Flex Framework”技术为免费版。新版的 Flex Builder 2 基于Eclipse IDE,对于需要诸如data push和自动测试等高级功能的用户来说,企业级的服务仍然有效。Flex2引入了新版本的语言ActionScript 3的使用,这需要Flash Player 9以上版本作为运行时环境(runtime)。Flex是第一个被Adobe冠上Adobe商标而重新命名的原Macromedia产品。FLEX3与FLEX2相比,程序自身所占空间和生成文件体积都有所减小。FLEX框架被集成到FLASH PLAYER里。在多个网站之间FLEX框架的复用也提高了FLEX程序运行时的效率。FLEX4已经推出了SDK下载,FLEX4将于2009发布。Macromedia 把一部份 Flex 1.5 的子集嵌入到了它的ColdFusion MX 7中间件平台中以供在 Flash 表单中使用。虽然可以使用这个平台来开发RIA,但是它原来的目的只是为了开发丰富的表单应用,所以这个功能并不为Macromedia 所支持。

Adobe官方将下一代Flex Builder 4改名为 Flash Builder 4。Flex Builder将继续是基于Eclispe的产品并将添加更多的特性,Flash Builder 4仍将保留Eclipse的很多特性。Adobe平台宣传者Lee Brimelow解释Adobe Flex Builder 4改名原因时说,“Flex Builder发明之初的目的是为了创建Flex框架项目。但是经过这么多年,大部分开发者只是单纯地用它来做ActionScript工作”,“Flash和Flex开发者通常不喜欢花费太多的时间在Flash IDE上而宁愿选择强大的、以代码为中心的工作环境比如Eclispe。”,“Flex是一种用来创建RIA开发的ActionScript框架。”

Adobe AIR(AIR=Adobe Integrated Runtime),开发代号為Apollo[1],是一個跨作業系統runtime environment用來建造RIA,使用FlashFlexHTMLAJAX,可部署為桌面應用程式。

Flare是一个flash数据可视化开发库。Flare is an ActionScript library for visualizing data like creating charts, graphs and complex interactive graphics. Flare has a tutorial which will help you to start using it and its API is well documented. To see its power, check the demos.

参考文档

[2] How to Learn Actionscript (Flash) for Data Visualization, Posted by Nathan / Apr 21, 2008

[3] Colin Moock's Essential Actionscript 3.0

[4] Adobe's Actionscript 3.0 language and components reference.

[5] Flare Data Visualization Tutorial

[6] Flex Builder 3 Features, 包含一些视频和文档。

[7] 中文Flex例子网站中有Flex中使用Google Maps的例子

[8] RIA百度百科

[9]

 

主要文件格式

  • swf是“Shockwave Flash”的缩写,这是一个完整的影片档,无法被编辑。有时会被念作“swiff”或“swaif”[1]。SWF在发布时可以选择保护功能,如果没有选择,很容易被别人输入到他的源文件中使用。然而保护功能依然阻挡不了为数众多的破解软件,有不少闪客专门以此来学习别人的代码和设计方式。
  • fla Flash的源文件,只能用Adobe Flash打开编辑。
  • asActionScript的缩写)是一种编程语言的简单文字文件。FLA文件能够直接包含 ActionScript,但是也可以把它存成AS档做为外部链接文件(如定义ActionScript类则必须在写在as文件里,再导入以加入类),以方便共同工作和更高级的程序修改。
  • swc,是一种供Flash使用的库格式,可以粗略地理解为Flash用的dll。无法被编辑。
  • flv,是Flash Video的简称,FLV流式媒体格式是一种视频格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。

数据可视化开发基础知识

Nathan在他的How to Learn Actionscript (Flash) for Data Visualization中问道:“学习用于数据可视化的ActionScript的最好的方法是什么?”,作者的答案是:doing。他说要加入一个限定期限的项目,彻底沉浸其中,进入编码涅磐状态,生活会简单很多。他的唯一一本参考书是《Colin Moock's Essential Actionscript 3.0》,他说I'm also starting to hear great things about Learning ActionScript 3.0: A Beginner's Guide by Shupe and Rosser, but I haven't got to look at it yet.

搭建开发环境

Create a new text file named “com.adobe.flexbuilder.feature.core.link”.  Edit the file, and add the following contents to it:

path=C:/Program Files/Adobe/Flex Builder 3 Plug-in

其实安装FB3_WWEJ_Plugin.exe的时候已经自动创建了该文件,而且该文件中有了唯一的一行:“C:/Program Files/Adobe/Flex Builder 3 Plug-in”,不过这样不行。还是要添加上“path=”这几个字母。这样Eclipse里就有了Flex开发视图(Perspective)。

Flex Builder 3 serial number:  1377-4162-3846-3534-0350-4248/  1377-4164-6188-8001-5785-6845/  1377-4169-1131-0886-8656-0480/  1377-4668-2613-1358-6996-4798/  1377-4162-9966-2026-9084-6664

如何协同Google Data API开发

假如你平时用GMail, Google Calendar, Google Docs, Google Maps, Google Reader以及Picasa Web Albums等各项Google的服务,是否有想过通过标准的桌面应用来访问这些服务呢?GMDesk就是这样的一款程序,用Adobe AIR实现,并且是开源的。

将Flash的SWF反编译取出ActionScript

总是会有人做这样的事情,不管是Java还是.Net,解析类的语言总是很容易的被反编译,Flash的SWF当然也不例外。darknet放出的Flare让人们可以在Dos/Windows,Mac OS,Linux x86,Linux x86 64-bit,Solaris x86这些平台下,都可以将Flash的SWF反编译取出ActionScript。

该工具在07年就有了,不过那时候我多Flash这样的东西没有丝毫的兴趣,当然也就不知道这些了。这样的工具其实不仅可以帮我们找回保留了SWF文件而丢失了的源代码,还可以帮我们理解各种控件内部的实现,当然,读取非公开的商业代码也同样变得简单。

不是很清楚是否有针对这类工具的反反编译的混淆工具,以后留意一点了。

该工具在这里可以下载到。转载自:FLARE–将Flash的SWF反编译取出ActionScript的免费工具 | 中文Flex例子

posted @ 2009-09-07 11:45 汗水房 阅读(...) 评论(...) 编辑 收藏