`
mylxiaoyi
  • 浏览: 325383 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

构建一个Flex程序

阅读更多
构建一个Flex程序

Flex定义了一个基于组件的开发模型,从而我们可以用来构建我们的程序。为了高效的设计与构建我们的程序,我们应该熟悉这个模型,以及程序开发步骤与布署过程。
在这一章描述了我们用来创建一个程序的开发过程。在这一章所包含的如下的一些信息:为了我们特定的需求需求而定制程序所要做出的决定,Flex产品线所提供的开发工具的概要,与其他的技术,如HTML和ColFusion的比较。

开发程序
Flex支持一个基于组件的开发模型。我们可以使用Flex中所包含的预构建的组件,我们可以通过创建新的组件来扩展Flex组件库,或者是我们可以组合预构建的组件来创建复合的组件。
程序模型
当我们使用Flex来构建一个程序,我们使用名为容器与控件的组件来描述我们的用户界面。一个容器就是屏幕上包含控件和其他容器的矩形区域。容器的一个例子就是为数据实体(data entry),盒子(Box),表格(Grid)所用的窗体(Form)容器。一个控件是一个窗体元素,例如按钮或是文件输入区。
例如,下面的图显示了两个不同的盒容器,每一个包含三个按钮与一个组合框控件。

上图演示了在水平盒(HBox)容器中的控件。HBox容器将他的控件在Flash播放器的平面上水平排列。上图同时演示了在垂直盒(VBox)容器中的控件。一个VBox容器垂直排列他的控件。
容器与控件定义了程序的用户界面。在MVC设计模式中,程序模型的这些方面代表视图(View)。模型(Model)是由数据模块表示的。Flex数据模型可以使得我们将我们的程序数据和业务逻辑与用户界面相分离。
我们使用MXML或是ActionScript作为Flex程序的一部分来定义数据模型。下图演示了在Flex中使用数据模型创建的窗体:

数据绑定是将一个对象中的数据绑定到另一个对象的过程。数据模型支持双向的数据绑定:可以从Flex控件向数据模型写入数据,或者是从数据模式向控件读入数据。我们也可以绑定服务器数据到一个数据模型或是直接到Flex控件。例如,我们可以将从一个网络服务器返回的结果绑定到数据模型,然后将数据传递到我们的窗体控件。
数据模型支持自动的数据有效性验证。这意味着我们可以使用Flex的验证器,例如邮编(ZipCode)验证器来保证模型区域中的值是有效的邮编。如果数据无效,我们可以向用户显示消息,从而用户可以纠正这些错误。
Flex如何适应MVC模型
模型-视图-控制器(Model-View-Controller)(MVC)体系结构的目的是通过创建在程序中定义良好与区域有限的组件,来增加我们的组件的重用性以及改进整个系统的可维护性。使用MVC结构,我们可以整个系统分为三个类型的组件:
模型组件封装数据以及以数据相关的行为。
视图组件定义我们程序的用户界面。
控制器组件处理我们程序中的交互。
例如,使用MVC设计,我们可以实现一个数据实体窗体为三个不同的部分:
由XML数据文件或是远程数据服务调用组成的保持窗体数据的模型。
视图由所有户界面元素的数据和显示所表示。
控制器包含用户界面逻辑。
尽管我们可以将Flex程序看作分布式MVC结构中视图的一部分,我们可以使用Flex来在客户端实现完整的MVC结构。一个Flex程序有他自己的视图组件来定义用户界面,模型组件来表示数据,控制器组件与负责与后台系统的交互。任何的客户端部分在HTML中是不可用的。

使用网络服务器工作
我们的开发与布署环境通常包含一个网络服务器,在这里我们使用网络服务器返回一个Flex SWF文件来响应用户的请求。我们可以使用下面的任何一种网络服务器:
简单的网络服务器
一个简单的网络服务器使用简单的HTML页面响应静态的页面请求。在这种情况下,我们预编译我们的Flex程序并且编写一个包装将我们的Flex程序的SWF文件嵌入到HTML页面中。
网络程序服务器
一个网络程序服务器,例如JRUN,ColFusion,或者是PHP,可以动态的生成页面来运行我们的Flex程序。在这种情况下,我们可以利用程序服务器的可用标签库和处理语言来为我们的Flex程序动态的生成包装。然而,我们必须在向这种类型的服务器布署之前预编译我们的Flex程序。我们可以使用任何一种类型的服务器,而并不仅是一个Java程序服务器来提供Flex程序,只要我们预编译我们的程序,并且程序不使用在Flex数据服务中可用的服务。
J2EE程序服务器或Servlet容器
我们需要J2EE程序服务器或是Servlet容器,例如JRUN,Tomcat或者是WebSphere来运行Flex数据服务。我们通常在运行Flex数据服务的服务器上布署之前预编译我们的Flex程序。然而,在开发过程中,我们可以在浏览器上请求一个Flex程序的MXMl文件,从而在运行时编译Flex程序。这会调用可以生成包装的编译器并且返回一个编译的SWF文件。
当安装Flex数据服务时我们可以有选择的来安装集成的JRUN J2EE服务器。集成的JRun服务器只是JRun 4程序服务器的开发版本,而且不是为部署而使用的。JRun的集成版本同时包含JRun网络服务器(JWS),我们可以用来处理HTTP请求。这个服务器也不是为部署而使用的。
在最简的情况下,我们应在我们的开发环境中有一个简单的网络服务器。没有网络服务器,我们只可以在独立运行的Flash播放器中运行Flex程序或者是在浏览器中请求SWF文件。前者并不推荐,因为他阻止了我们的程序使用Flex更多的网络特性。后者不推荐是因为并不是所有的浏览器都支持直接的SWF文件请求。

程序开发步骤
我们通常使用下面步骤来开发一个Flex程序:
1 在文本编辑器或是集成开发环境中,例如Adobe Flex Builder,Eclipse,或是IntelliJ,在MXML文件中插入MXML根标签。
2 添加一个或是多个容器。
3 向容器中添加控制器,例如输入域,按钮,输出域。
4 定义数据模型。
5 添加网络服务,HTTP服务,或是请求一个远程Java对象。
6 向输入数据添加验证。
7 添加脚本来扩展组件。
8 编译我们的程序为SWF文件。
注意:如果我们有Flex数据服务,我们可以部署我们的程序为MXML和ActionScript文件的集合。一旦接收一个HTTP请求到一个MXML文件,Flex数据服务编译我们的程序为一个SWF文件。
部署文件
我们可以部署我们的程序为一个编译的SWF文件,或者如果我们有Flex数据服务,我们可以部署我们的程序为一个MXML和ActionScript文件的集合。
部署SWF文件
在我们编译我们的程序为一个SWF文件后,我们可以通过将这个文件拷贝到网络服务器或是程序服务器的目录中来实现部署。用户可以通过HTTP请求来访问部署的SWF文件:
http://hostname/path/filename.swf
尽管我们可以直接访问一个SWF文件,通常我们使用一个包装将SWF合并到一个网页。包装负责将Flex程序的SWF文件嵌入到网页中,例如一个HTML,ASP,JSP或是ColFusion页面。另外,我们在包装中使用逻辑来允许历史管理,急速安装(Express Install),来允许或不允许Javascript的浏览器都可以访问Flex程序。
部署MXML和ActionScript文件
如果我们有Flex数据服务,我们可以将我们的程序部署为MXML和ActionScript文件的集合。当我们部署我们的程序为MXML和ActionScript文件集合时,用户请求主要的MXML文件来开始一个程序。用户第一次在网络浏览器中请求MXML文件的URL时,服务器编译MXML代码为SWF文件。服务器将SWF文件发送到网络浏览器由Flash播放器运行。
Flex程序使用MXML文件扩展名。我们将这些文件存放在我们的J2EE程序的网络根目录下。
要请求一个由MXML和ActionScript文件部署的程序,用户向主要的MXML文件发送请求:
http://hostname/path/filename.mxml
主要的MXML文件包含<mx:Application>标签。
MXML文件一旦接收到一个HTTP请求,Flex执行如下的操作:
1 编译MXML文件来生成一个SWF文件
2 在服务器上缓存编译的SWF文件
3 向客户端返回SWF文件
一旦向MXML文件发送请,Flex服务器会检测自上一次请求以来是否修改了MXML文件。如果,他会由缓存中返回同样的SWF文件。如果MXML已经修改了,Flex服务器重新编译这个文件,并且向客户端返回一个更新的SWF文件。

相关推荐

    用Flex写的一个入门程序

    这可能意味着在完成Flex编程后,开发者已经编译并创建了一个可执行的SWF文件,这个文件可以在Web浏览器中运行,展示Flex程序的实际效果。 综上所述,这个压缩包的内容很可能是: 1. 一个Flex初学者程序的源代码,...

    flex例子.flex源程序

    这个"flex例子.flex源程序"很显然是一个Flex开发的学习资源,它包含了一个或多个示例项目,用于帮助开发者理解和掌握Flex编程的基本概念和实践。 Flex的主要组件包括MXML和ActionScript,它们是构建Flex应用的两大...

    测试flex应用程序

    "sfapi" 提供了一个接口,使得测试工具,如Selenium,能够与Flex应用程序的控件进行交互。Selenium是一款强大的Web应用程序自动化测试工具,它支持多种浏览器和编程语言。将Selenium与sfapi结合使用,我们可以在...

    flex 两个图片播放小程序

    在这个“flex 两个图片播放小程序”项目中,我们可以看到它被用来创建一个图片浏览应用,支持图片的放大和缩小功能,提供了用户友好的交互体验。接下来,我们将深入探讨Flex在图片浏览中的应用及其关键技术。 首先...

    selenium对flex程序的自动化测试.docx

    Selenium 是一个自动化测试工具,它可以模拟用户的行为来测试 Web 应用程序。Flex 是一种基于 XML 的开发语言,用于构建 Rich Internet Applications(RIA)。在这篇文章中,我们将介绍如何使用 Selenium 对 Flex ...

    构建全栈式Flex、BlazeDS和Spring集成解决方案–第一部分 创建Maven Flex模块

    - **Flex-mojos**:Maven插件,用于构建Flex项目。 ### 二、技术基础 虽然熟悉Flex Builder和BlazeDS的使用会有所帮助,但这并非必需条件。对于初学者而言,重要的是理解和掌握Spring框架的基本概念,以及如何利用...

    FLEX3构建网络监控程序源码

    这是一个非常棒的flex3做的网络监控程序源码,实现自动全新排序 ESRIA网络监视器是一个演示应用程序,在多个视图中显示网络上的设备。 三个视图分别为网络拓扑,设备类型和网格。 每个设备显示实时数据使用 ...

    微信小程序+Flex布局示例源代码

    `属性,容器将变为一个Flex容器,其子元素将遵循Flex规则。通过`flex-direction: row;`属性,我们可以使子元素沿水平方向排列,实现横向布局。此外,`justify-content`属性可以控制子元素在主轴(在此为水平方向)上...

    构建全栈式Flex、BlazeDS和Spring集成解决方案

    本篇文章将深入探讨如何将这三个技术有效地整合在一起,构建一个全栈式的解决方案。 Flex是一种基于ActionScript和Flash Player的前端开发框架,用于创建富互联网应用程序(RIA)。它提供了丰富的图形用户界面组件...

    一个flex的应用程序-画板

    这个"一个flex的应用程序-画板"是利用Flex来创建的一个交互式的绘图工具,对于初学者来说,它是一个很好的实践项目,可以帮助理解Flex的基本概念、组件使用以及事件处理。 1. **Flex基础**: - Flex是使用MXML和...

    flex安装程序 windows

    Flex接收一个描述语言模式的输入文件,通常名为`.l`或`.flex`,并生成对应的C源代码,这个源代码实现了一个词法分析器,可以识别和处理输入文本中的特定模式。在生成的C代码中,Flex会定义一个主循环,用于读取输入...

    一个FLEX的小项目

    这个小项目是一个使用Flex技术实现的购物车界面,对于初学者来说是一个很好的实践案例。 在Flex开发中,`.actionScriptProperties`文件是ActionScript的配置文件,用于存储关于源代码编译器设置和库路径等信息。它...

    微信小程序flex布局demo

    在微信小程序中,我们可以通过以下方式实现一个简单的Flex布局: ```html &lt;view class="item"&gt;1 &lt;view class="item"&gt;2 &lt;view class="item"&gt;3 ``` ```css .container { display: flex; flex-wrap: wrap; } ...

    Flex程序如何获取html容器传递的URL参数值

    然而,Flex程序如何从HTML容器中获取URL参数值,成为了一个重要的技术知识点。 ### Flex程序与HTML容器间的URL参数传递 在Flex程序中,获取HTML容器传递的URL参数值,通常涉及到三个关键步骤:从HTML中获取URL参数...

    Flex 系列教程之三 一个简单那的小程序让你了解Flex

    在本教程中,我们将深入学习Flex的基本概念和组件,以及如何利用它们来构建一个小程序。首先,我们需要安装Flex Builder,这是一个集成开发环境(IDE),提供了代码编辑、调试和预览功能,极大地方便了Flex应用的...

    Flex+Spring+hibernate+mySql整合的一个登陆程序

    标题中的“Flex+Spring+Hibernate+MySQL整合的一个登陆程序”是指使用这四个技术栈构建的登录应用程序。这个项目结合了前端的Flex(一种基于ActionScript和Flash的RIA开发框架)与后端的Spring(一个全面的Java应用...

    flex4.5 开发安卓程序文档

    这份"Flex 4.5 开发安卓程序文档"为开发者提供了宝贵的资源,特别是对于初学者来说,它是一个很好的入门指南。 一、Flex 4.5概述 Flex 4.5基于ActionScript 3.0和Flash Player或Adobe AIR运行时环境,提供了一个...

    我的第一个flex项目

    总的来说,"我的第一个flex项目"是一个很好的起点,通过实践这个项目,你可以了解到Flex的基本概念和开发流程,为进一步学习Flex和构建更复杂的RIA奠定基础。记住,动手实践是学习任何技术的关键,祝你在Flex开发的...

Global site tag (gtag.js) - Google Analytics