flex项目,flex开发框架

  flex项目,flex开发框架

  建立一个灵活的程序

  Flex定义了一个基于组件的开发模型,因此我们可以使用它来构建我们的程序。为了高效地设计和构建我们的程序,我们应该熟悉这个模型,以及程序开发步骤和部署过程。

  本章描述了我们用来创建程序的开发过程。本章包含以下信息:根据我们的特定需求定制程序的决定、Flex产品线提供的开发工具的概述,以及与其他技术(如HTML和ColFusion)的比较。

  开发方案

  Flex支持基于组件的开发模型。我们可以使用Flex中包含的预构建组件,我们可以通过创建新组件来扩展Flex组件库,或者我们可以组合预构建组件来创建复合组件。

  程序模型

  当我们使用Flex构建程序时,我们使用称为容器和控件的组件来描述我们的用户界面。容器是屏幕上包含控件和其他容器的矩形区域。容器的一个例子是用于数据输入、框和网格的表单容器。控件是一种表单元素,如按钮或文件输入区域。

  例如,下图显示了两个不同的box容器,每个容器都包含三个按钮和一个组合框控件。

  上图显示了水平盒(HBox)容器中的控件。HBox容器在Flash player的平面上水平排列其控件。上图还演示了垂直框(VBox)容器中的控件。VBox容器垂直排列其控件。

  容器和控件定义了程序的用户界面。在MVC设计模式中,程序模型的这些方面代表了视图。模型由数据模块表示。Flex数据模型使我们能够将程序数据和业务逻辑从用户界面中分离出来。

  我们使用MXML或ActionScript作为Flex程序的一部分来定义数据模型。下图演示了使用数据模型在Flex中创建的表单:

  数据绑定是将一个对象中的数据绑定到另一个对象的过程。数据模型支持双向数据绑定:您可以将数据从Flex控件写入数据模型,或者将数据从数据模型读取到控件。我们还可以将服务器数据绑定到数据模型或直接绑定到Flex控件。例如,我们可以将从web服务器返回的结果绑定到数据模型,然后将数据传递给表单控件。

  数据模型支持自动数据验证。这意味着我们可以使用Flex的验证器,比如ZipCode verifier,来确保模型区域中的值是有效的邮政编码。如果数据无效,我们可以向用户显示一条消息,以便用户可以纠正这些错误。

  Flex如何适应MVC模式

  模型-视图-控制器(MVC)架构的目的是通过在程序中有限的区域内创建定义良好的组件,增加我们组件的可重用性,提高整个系统的可维护性。使用MVC结构,我们可以将整个系统分成三种类型的组件:

  组件封装了数据和与数据相关的行为。

  视图定义了我们程序的用户界面。

  控制器处理我们程序中的交互。

  例如,使用MVC设计,我们可以将数据实体表单实现为三个不同的部分:

  由XML数据文件或远程数据服务调用组成的模型,用于维护表单数据。

  视图由所有用户界面元素的数据和显示来表示。

  控制器包含用户界面逻辑。

  虽然我们可以把Flex程序看作是分布式MVC结构中视图的一部分,但是我们可以用Flex在客户端实现完整的MVC结构。Flex程序有自己的视图组件来定义用户界面,有模型组件来表示数据,有控制器组件来与后台系统交互。的任何客户端部分在HTML中都不可用。

  使用web服务器

  我们的开发和部署环境通常包括一个web服务器,我们使用web服务器返回一个Flex SWF文件来响应用户的请求。我们可以使用以下任何一种网络服务器:

  简单web服务器

  简单的web服务器使用简单的HTML页面来响应静态页面请求。在这种情况下,我们预编译Flex程序,并编写一个包装器将Flex程序的SWF文件嵌入到HTML页面中。

  网络程序服务器

  网络程序服务器,如JRUN、ColFusion或PHP,可以动态生成页面来运行我们的Flex程序。在这种情况下,我们可以使用可用的标记库和程序服务器的处理语言来为我们的Flex程序动态生成包装器。然而,在部署到这种类型的服务器之前,我们必须预编译我们的Flex程序。我们可以使用任何类型的服务器来提供Flex程序,而不仅仅是Java程序服务器,只要我们预编译我们的程序,并且程序不使用Flex数据服务中的服务。

  J2EE程序服务器或Servlet容器

  我们需要J2EE程序服务器或Servlet容器,如JRUN、Tomcat或WebSphere,来运行Flex数据服务。我们通常在将Flex程序部署到运行Flex数据服务的服务器上之前预编译它们。但是,在开发过程中,我们可以在浏览器上请求Flex程序的MXMl文件,以便在运行时编译Flex程序。这将调用可以生成包装的编译器,并返回编译后的SWF文件。

  在安装Flex数据服务时,我们可以有选择地安装集成的JRUN J2EE服务器。的集成JRun服务器只是JRun 4程序服务器的开发版本,不用于部署。JRun的集成版本还包括JRun Web服务器(JWS),我们可以用它来处理HTTP请求。此服务器也不用于部署。

  在最简单的情况下,我们应该在开发环境中有一个简单的web服务器。没有web服务器,我们只能在独立的Flash播放器中运行Flex程序,或者在浏览器中请求SWF文件。不建议使用前者,因为它会阻止我们的程序使用Flex的更多网络功能。不建议使用后者,因为并非所有浏览器都支持直接的SWF文件请求。

  程序开发步骤

  我们通常使用以下步骤来开发Flex程序:

  1在文本编辑器或集成开发环境中,如Adobe Flex Builder、Eclipse或IntelliJ,将MXML根标签插入到MXML文件中。

  添加一个或多个容器。

  3向容器添加控制器,例如输入字段、按钮和输出字段。

  4定义数据模型。

  5添加一个web服务、HTTP服务或请求一个远程Java对象。

  6向输入数据添加验证。

  7添加脚本来扩展组件。

  8将我们的程序编译成SWF文件。

  注意:如果我们有Flex数据服务,我们可以将程序部署为MXML和ActionScript文件的集合。一旦收到对MXML文件的HTTP请求,Flex数据服务就会将我们的程序编译成SWF文件。

  部署文件

  我们可以将程序部署为已编译的SWF文件,或者如果我们有Flex数据服务,我们可以将程序部署为MXML和ActionScript文件的集合。

  部署SWF文件

  将程序编译成SWF文件后,我们可以通过将该文件复制到网络服务器或程序服务器的目录中来部署它。用户可以通过HTTP请求访问部署的SWF文件:

  http://主机名/路径/文件名. swf

  虽然我们可以直接访问SWF文件,但通常我们使用包装器将SWF文件合并到网页中。包装器负责将Flex程序的SWF文件嵌入到网页中,如HTML、ASP、JSP或ColFusion页面。此外,我们在包装器中使用逻辑来允许历史管理、快速安装以及允许或不允许Javascript浏览器访问Flex程序。

  部署MXML和ActionScript文件

  如果我们有Flex数据服务,我们可以将程序部署为MXML和ActionScript文件的集合。当我们将程序部署为MXML和ActionScript文件的集合时,用户请求主MXML文件来启动程序。用户第一次在web浏览器中请求MXML文件的URL时,服务器会将MXML代码编译成SWF文件。将服务器SWF文件发送到web浏览器,由Flash player运行。

  Flex程序使用MXML文件扩展名。我们将这些文件存储在J2EE程序的网络根目录中。

  要请求由MXML和ActionScript文件部署的程序,用户向主MXML文件发送请求:

  http://主机名/路径/文件名. mxml

  的主MXML文件包含mx:Application标记。

  一旦MXML文件收到HTTP请求,Flex就会执行以下操作:

  编译1个MXML文件以生成一个SWF文件。

  2在服务器上缓存编译后的SWF文件

  3将SWF文件返回给客户端

  一旦请求被发送到MXML文件,Flex服务器将检测自上次请求以来MXML文件是否被修改过。如果是这样,他将从缓存中返回相同的SWF文件。如果MXML已被修改,Flex服务器会重新编译该文件,并将更新后的SWF文件返回给客户端。

flex项目,flex开发框架