flex入门之Flex与Flash的关系 首先这里想说的是,Flash并非只是一个单纯的矢量动画创作工具,而是一个凭借脚本语言ActionScript在功能和定位上不断演变的网络应用开发工具。早在FlashMX的时候就已经成为macroemdia推广RIA战略的工具。但是毕竟Flash最初的定位是面向美术动画设计师的矢量动画创作工具,并不适合传统的开发人员。于是Flex成为开发者们的首选。 Flex和Flash都以ActionScript作为其核心编程语言,并被编译成swf文件运行于Flashplayer虚拟机里。因此Flex也继承了Flash在表示层上先天性的美感、除了视觉上的舒适感外,还天生具备方便的矢量图形、动画和媒体处理接口。 虽然Flex和Flash有众多的相似点,但是不同之处仍然很多: 1.尽管公用ActionScript,但是使用的库并不完全相同,更合适的说法是两者使用着两套具有极大“功能重叠”范围的库。 2.Flash偏向的是美术动画设计师人员,所以更容易发挥特效处理的优势,Flex偏向开发人员,所以容易做出具有丰富交互功能的应用程序。 3.Flash只能以ActionScript脚本的形式开发(舞台被关联到一个称之为documentclass的类里),另外舞台元素也是可以绑定脚本的,不过从软件工程的角度讲不建议这样用,Flex还可以使用称作mxml的标记语言来描述应用的外观和行为,mxml中可以直接嵌入ActionScript脚本。 4.由于第三点而造成的两者市场定位不同,Flex是面向企业级的网络应用程序,Flash则面向诸如平面动画、广告设计等多媒体展示程序。 5.借助FlashLite这一移动设备上的Flashplayer,Flash可以开发移动应用,Flex则不行。 6.Flash的编程模型是基于时间轴的,Flex的则是基于窗体,虽然它运行在网页里。 flex入门之Flex的技术框架 Flex技术包括以下几个主要技术框架: 1.描述应用程序界面的XML语言(MXML); 2.符合ECMA规范的脚本语言(ActionScript),处理用户和系统的事件,构建复杂的数据模型; 3.一个基础类库; 4.运行时的即时服务; 5.由MXML与ActionScript文件生成swf文件的编译器。 flex入门之词法分析器生成器Flex Flex(fastlexicalanalysergenerator)是Lex的另一个替代品。它经常和自由软件Bison语法分析器生成器一起使用。Flex最初由VernPaxson于1987年用C语言写成。 Flex手册里对Flex描述如下: “Flex是一个生成扫描器的工具,能够识别文本中的词法模式。Flex读入给定的输入文件,如果没有给定文件名的话,则从标准输入读取,从而获得一个关于需要生成的扫描器的描述。此描述叫做规则,由正则表达式和C代码对组成。Flex的输出是一个C代码文件——lex.yy.c——其中定义了yylex()函数。编译输出文件并且和-lfl库链接生成一个可执行文件。当运行可执行文件的时候,它分析输入文件,为每一个正则表达式寻找匹配。当发现一个匹配时,它执行与此正则表达式相关的C代码。” 一个相似的,用C++语言的词法分析器生成器是Flex++,包含在Flex软件包里。 Flex不是GNU工程,但是GNU为Flex写了手册。