简单的理解Flex
     Flex是什么?我们可以简单的理解为是许多技术和服务产品的总称。也可以看成是Adobe公司为我们J2ee应用程序提供的一个展现服务器。主要用来和我们j2ee环境下进行整合的一个开发包(war)。也可以理解为主要有actionscript和mxml两种语言组成的一个应用。从框架上考虑,flex就是一个开源的框架。就像Spring,Hibernate一样。
     一句话总结:Flex是用来开发新一代的“复杂Internet应用”(RIAs - Rich Internet Applications)。结合桌面应用的可用性和web应用的易于管理的优点来开发一种复杂Internet应用。既继承了传统桌面应用的及时性,又发挥了流行的web应用的易于部署和管理的优点。
      Flex是一个在J2EE应用服务器或servlet容器安装的展现服务器。它拥有丰富的用户界面组件、用于排布这些组件的基于XML的标记语言,以及可以处理用户交互的面向对象编程语言。这些技术的给我们带来的是:使用Flash播放器渲染复杂Internet应用,使用工业标准和开发者熟悉的方式进行开发。
 
简单的理解Flex的组成
      Flex主要包含两种文件,一种是mxml文件和actionscript文件。其中mxml文件是基于xml的,这就表明了它是可扩展的,可定制的标签。在mxml中引入了大量的丰富的标签集 。加快了开发速度,它主要用来展现表示层的页面。其中一个as文件主要用来控制一些简单的编程逻辑和用户交互的需求 ,as是一种大家熟悉的面向对象的语言,支持面向对象的三大特性,对我们后台程序员来说,更简单了,它的语法与java,c#,js很相似,其实所有的面向对象的语言的语法都是大同小异的。
 
简单的理解Flex的工作原理
       我通过简单的对比,让大家很快的了解它的工作原理。先回想一下jsp的工作原理,它首先被预编译成 servlet,也就是我们熟悉的java类,然后再编译成jvm所能执行的class字节码。而mxml文件的这个工作原理与jsp很相似的,mxml首先也被预编译成as中间文件,在编译成Adobe Flash Player 能执行的swf字节码。Adobe Flash Player 就像java虚拟机一样。但它们有一点不同的是,jsp的字节码执行是在服务器端执行的,而Flex的swf字节码是有服务器发送到客户端(浏览器)的Adobe Flash  Player 上执行的。这一点的差别,大家可能就可以看出flex的优点了,起码可以减轻服务器的压力了。
       更形象的我们可以把mxml比作jsp,而as看成servlet(java)来理解可能更简单了。上面是从工作原理上比喻是非常接近的。如果我们但从表现的比喻的话,可以把mxml看成是html,而把as看成javascript。这样大家可能会更好的理解,mxml(html)主要用来显示的,而as(javascript)主要用来控制一些编程逻辑和用户交互的需求。我们通过这两个形象的比喻,你应该理解Flex了吧。
 
简单的实现HelloWorld
         我将会通过一个简单的HelloWorld的例子,让你彻底的了解Flex的工作原理。先写一个mxml文件,也可以写成as文件。打开记事本写入下面对代码。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="[url]http://www.adobe.com/2006/mxml[/url]" layout="absolute">
 <mx:Label text="Hello World" />
</mx:Application>
然后保存为HelloWord.mxml。我保存在D:\flex\HelloWord.mxml.
      HelloWorld写好了,我们现在怎样通过命令行运行呢?首先保证你的电脑上已经按装了SDK,就像运行java必须安装JDK一样。一般我们在配置环境变量path,就是可以在命令行下不用切换到SDK的bin目录下就可以直接使用的命令,这个大家应该都很熟悉吧。自己根据安装的SDK配置吧。
      打开一个命令窗口:
      切换到你的文件所在的文件夹下。如下图:
      当你看到在和HelloWorld.mxml同一目录下会生成一个HelloWorld.swf文件,这就是我们说的swf文件。它可以在Adobe Flash Player中运行。双击这个文件就可以看到一个如下图的效果。
       也可以在命令窗口直接用命令:D:\flex\HelloWorld.swf.也会运行的。同时注意要保证你的电脑上已经安装了Adobe Flash Player播放器。
         上面我说过,mxml会产生一个中间文件as,我们怎么没看到呢?我们知道我们写的jsp的页面,而我们用到是class文件,把中间那一步的文件并没有放到我们的工程中,这个其实也一样,它只生成了swf文件,而没有看见as文件,如果我们想看到怎么办呢?
         这时我们就得用这个命令执行:mxmlc -keep-generated-actionscript HelloWorld.mxml

会在Hello.mxml文件的同目录下产生一个generated的文件夹,里面就是mxml文件编译时产生的中间文件as.
 
    generated文件下就是as中间码:
 
  
          希望大家看后对你以后学习和理解Flex有所帮助。