`

第一章 Flex是如何工作的 (1、2、3小节)

    博客分类:
  • Flex
阅读更多

第一章 Flex 是如何工作的

该部分文档的内容是为用户提供关 Adobe ® Flex 工作机制的一个快速综述。通过本章节的学习,你可以创建你的第一 Flex 应用程序,并将它与你以前所熟悉 Web 开发技术进行比较,以领 Flex 的内涵和精髓。

第一节构建并运 Flex 应用程

Flex 是一个提供开发设计和运行支持的架构,它可以使开发人员创建利 Adobe® Flash® Player 9 作为前台的“富客户端互联网应用程 /rich Internet applications/RIA ”,以满足用户更为直观和极具交互性的在线体验。

Flex 应用程序的典型步骤如下(通常是这样)

  1. 1. 选取一系列预先定制好的、用于设计应用程序界面的组件(如表格、按钮等等
  2. 2. 布置组件以设计用户界面
  3. 3. 使用样式和主题来增强视觉方面的设计
  4. 4. 添加动态行为(例如程序部件之间的相互作用)
  5. 5. 定义并连接所需的数据库服务
  6. 6. 将源代码编译 SWF 文件,然后 Flash Player 中运行。

一个典型 Flex 应用程序包括如下元素

1. Flex framework

Adobe® Flex 2 framework 包含了创 RIA 所需要的所有组件,它们是:用于应用程序布局规划的容器;针对用户界面和从用户处获取数据的控制(例如文本框和按钮);广泛支持的数据绑定、数据格式化、以及有效值验证;事件驱动的开发模式 Flex framework 被包含在公用组件库 SWC )文件中。

2. MXML

Flex 应用程序至少包含有一 MXML 文件,它被作为该程序的主文件 MXML 是一种标记语言,它是基 XML 的一种实现,用来创 Flex 应用程序。你可以使用它去声明程序中所使用的标签结构的定义。

3. ActionScript 3.0

你可以使 ActionScript 3.0 为应用程序添加动态行为,它是基 ECMAScript 的一种实现,类似 JavaScript 。你可以 ActionScript 作为一个脚本块, MXML 文件中直接进行添加;或者创建一个单独 ActionScript 文件,然后将它们导入 MXML 文件中。

4. CSS

你可以通过设置组件的属性 properties )来改变组件(按钮、列表框等)的视觉样式。例如,按钮组件有一 fontFamily 属性,你可以使用它来进行字体的设置。样式的属性通常有四种方法来进行控制:通过主 (theme) CSS 文件中进行定义; MXML 文件中的样式块中进行定义;在组件的实例中进行设置。

  1. 5. 图形资 与很多应用程序一样 Flex 包含了各种各样的图形资源,如图标和图象
  2. 6. 数据

一些组件被使用来进行数据显示 combo box data grid )的工作。同时,你还可以使用各种方式来将这些组件与数据联系起来,如使用数组、收集对象、数据模型、以及外部 XML 数据资源,等等

Flex 应用程序是如何编译和发布的:所有的元素都被编译或连接到你 Flex 应用程序中,就象下图所示

Flex 应用程序被编译成一 SWF 文件,然后 Flash Player 下运行。当一个源代码被编译时,它就被转换 ActionScript 类(译者注:这正 Flex 精髓的地方之一,即提供 MXML ActionScript 的转换),并与图形和其它资源合并 SWF 文件里。在运行时 SWF 文件与所需的外部库、服务和数据源进行交互。

一般 Flex 应用程序并不需要服务器端所提供的支持。因此,你可以在你的本地计算机上编译它们,然后 Web 服务 HTML 页面中发布给你的用户。

当然,你还可以 Flex Adobe® Flex Data Services 2 Cold Fusion Flash Remoting Service 、或者其 Java J2EE Service 服务器技术结合起来,进 B/S 结构的网络应用程序的开发

MXML :一切开始的地方你可以 MXML 中使 Flex 所提供的组件来定义用户界面。这里有一个 MXML 程序文件的例子

<?xml version="1.0" encoding="utf-8"? > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" > <mx:Panel > <mx:TextArea text="Say hello to Flex!" / > <mx:Button label="Close" / > </mx:Panel > </mx:Application >

如果你 XML 已经很熟悉了,就能一眼识别出这个例子的格式 MXML 代码的头两行包含了版本号、编码、以及命名空间的信息,文档的主体包含的是程序的具体内容 Flex 应用程序所有的具体内容都被放 <mx:Application> 标签对中。同时,你还可以在父标签对中嵌套其它的子标签对(译者注:反正标签是成对出现的,这点一定要记住)。该例子创建了一个简单的程序,它在屏幕上显示 Say hello to Flex !”的文字。在该程序中,声明 TextArea Button 组件,并设置了它们相应 text label 属性。

备注: MXML 文件中的每个标签都有前 mx ,它 Flex 的设计命名空间。

程序被编译后运行,如下图所示:

第二节连接数据

请记住, Flex 应用程序中对数据的操作最重要的事情是 Flex 应用程序并不直接与一个数据库进行连接。因此 Adobe® Flex Builder 2 没有提供直接连接数据的工具。你可以通过使 MXML ActionScript 代码来操作和管理数据。

Flex 中,你可以使用几种方法去操纵和管理数据,它们大多数相关的内容已经超出了在这里进行简要介绍的范围(更多的信息,请查看后面的章节)。不管怎样,请想象一种可以连接外部数据的方法,随后的例子将演示 XML 结构的数据进行连接。

数据的生成

Flex 应用程序并不直接与一个数据库进行连接,所以你需要使用某种类型的服务来支持对数据的使用。在随后的例子中,将使 HTTPService 组件 PHP 所产生的一 XML 文件中获取数据。

连接数据库的第一步是生成将 Flex 程序中使用到的数据。在 PHP 的应用中,你将采用如下的步骤

  1. 1. 创建一个数据库( MySQL
  2. 2. 编写一 PHP 脚本连 MySQL 数据库并生 XML 格式的数据。

这些步骤同样适合于在其它工作平台上生成的数据( ASP.NET JSP 等)。

连接外部数据源

PHP 所生成 XML 格式数据,你可以使 HTTPService 组件来请求获取数据,就象这样

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:HTTPService

id="productsRequest"

url="http://www.somesite.com/products.php" />

...

HTTPService 组件定义了一个请 ID ,你将使用这 ID 来控制提供数据 URL 或者服务器与数据之间的绑定。

外部数据与数据驱动控制的绑定

通过数据与数据驱动控制( data-driven control )的绑定,你就可以处 HTTPService 的结果 XML 数据),就象这样

<mx:DataGrid x="20" y="80" id="productGrid" width="400" dataProvider="{productRequest.lastResult.products.items}" >

<mx:columns>

<mx:DataGridColumn headerText="Name" dataField="name" />

<mx:DataGridColumn headerText="Price" dataField="price" />

</mx:columns> </mx:DataGrid>

数据绑定的语法显示在数据控制 dataProvider 属性中(在波浪形的括号里),它包含 HTTPService ID lastResult 方法、以 XML 文件的数据结构。在这个例子中 XML 数据源的数据结构看起来就象这样

<XML>

<products>

<item>

<name>Mobile Phone</name>

<price>$199</price>

</item>

<item>

<name>Car Charger</name>

<price>$34</price>

</item> ...

通过设 dataField 属性,项目数据 name price )作为数据栅格中每一列的数据。

在运行时加载数据

你还可以 Flex 程序开始运行时加载数据,就象随后所示,在 HTTPService 中向某个特定 URL 发送一个请求

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="productsRequest.send() " >

当你 creationComplete 方法添加到应用程序标签里后,数据会在运行时进行加载并交于数据驱动控制(在这个例子中是数据栅格)。

你还可以 HTTPService 请求添加到一个控制事件上而不是程序里的标签中,就象如下所示

<mx:Button x="50" y="8" label="Get Data" click="productsRequest.send();" />

Flex 提供许多方法去连接、管理、格式化、以及校验数据。你可以通过使用远程程序调用、数据服务、或者其它企业级技术来操纵和管理数据。

第三节关 Flash Player 安全性方面的问题

出于安全方面的考虑,在客户端 Flash Player 中运行的应用程序,只有在满足如下条件之一的情况时才能访问远程的数据源,

1. 应用程序所编译 SWF 文件与远程数据源位于同一个域中

  1. 2. 使用代理 proxy ),并且你 SWF 文件位于和代理相同的服务器上 Adobe Flex Data Services Flex 应用程序提供了一个完整的代理管理系统。同时,你还可以通过使用一 web 脚本语言, ColdFusion JSP PHP ASP 来创建一个简单的代理服务
  2. 3. crossdomain.xml (跨域策 /cross-domain policy )文件在数据源的宿 Web 服务器上 crossdomain.xml 文件允许位于其它域中 SWF 文件对数据源的访问。

 

 

分享到:
评论

相关推荐

    Flex与ActionScript3程序开发

    第1章 走进Flex世界 第2章 Flex基础知识 第3章 语言基础 第4章 数据基础 第5章 Flex事件驱动 第2篇 视觉设计篇 第6章 Flex皮肤设计 第7章 特效effect和状态state 第8章 Flex与Flash无缝衔接 第9章 综合...

    Flex学习第一章

    标题中的“Flex学习第一章”指的是Adobe Flex这一技术的入门学习内容。Flex是基于ActionScript和MXML的开源框架,主要用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户界面的交互式应用,并能跨...

    flex 小节.rar

    这些都是我从2010年到2015年 flex工作经验小节。如远程对象的配置, flex 默认右键 菜单的屏蔽, datagrid 的渲染器, 编辑器。 tip 提示的重写。 Menu 的默认样式改写, 比如把分割线变细,flex 组件的生命周期,...

    《我的flex我精通》第一章

    《我的flex我精通》第一章主要聚焦于Flex技术的基础知识,为初学者提供了全面的入门指导。Flex是由Adobe公司开发的一种用于构建富互联网应用程序(RIA)的框架,它基于ActionScript编程语言和MXML标记语言,使得...

    flex web工作流程图

    Flex Web工作流程图是一种利用Adobe Flex技术创建的用于设计和展示流程、工作流或系统交互的可视化工具。Flex是一款强大的开发框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA),它基于...

    Flex第一步--基于ActionScript 3.0的Flex 2应用开发 第2、 6、 13章

    本资料主要聚焦在Flex 2的应用开发,特别是结合ActionScript 3.0这一强大的编程语言进行的实践操作。ActionScript 3.0是Flash Platform的核心编程语言,它具有更严格的类型系统、更高的性能和更多的面向对象特性。 ...

    Flex3学习指南-是初学者学习Flex必备资料1

    Flex3学习指南是一份专为初学者设计的资源,旨在帮助他们掌握Adobe Flex 3这一强大的富互联网应用程序(RIA)开发框架。Flex 3在Web应用开发领域具有广泛的影响力,尤其在创建交互式、图形丰富的用户界面方面表现...

    S2Flex2-1.1.0

    1. **组件支持**:它提供了S2Container组件,该组件允许在Flex应用中直接调用Seasar2的服务和组件,实现后端业务逻辑的执行。 2. **数据绑定**:S2Flex2支持数据的自动双向绑定,使得前后端的数据同步更加方便,...

    Flex3样式设计工具4IN1Flex3样式设计工具4in1.rar

    这个"Flex3样式设计工具4in1.rar"是一个压缩包,包含了多个与Flex3样式设计相关的工具和资源,帮助开发者更有效地管理及定制应用的外观。 1. **Flex3 Component Explorer**:这是一个组件浏览器,允许开发者查看和...

    flex工作流源码

    Flex工作流源码是基于Adobe Flex技术开发的一种工作流程管理系统的核心代码。Flex是一种用于构建富互联网应用程序(RIA)的开放源代码框架,它基于ActionScript编程语言和MXML标记语言,能够创建高度交互且功能丰富...

    flex3d效果展示

    Flex3D,全称为Adobe Flex 3D,是Adobe Flex框架的一个扩展,它允许开发者创建具有强大三维(3D)视觉效果的富互联网应用程序(RIA)。这个技术在2000年代中期非常流行,尤其在需要展示复杂数据或提供动态交互体验的...

    flex3使用说明

    Flex3 是一个高效、免费的开源框架,用于构建具有表现力的 Web 应用程序。Flex3 可以与 Java 后台进行通信,并与 FusionCharts 结合使用,实现数据可视化。下面是 Flex3 的详细介绍: 一、Flex 简介 Flex 是一个...

    flex 工作流设计器

    1. **新建工作流**:打开Flex工作流设计器,选择“新建”创建一个新的工作流项目,设定初始参数。 2. **设计流程图**:从工具箱中选择所需的流程元素(如开始、结束、任务、决策等)拖放到画布上,并通过连接线定义...

    Flex第一步

    ### Flex第一步知识点解析 #### 一、Flex简介与特性 Flex是一种开源的Web应用程序开发框架,主要用于构建跨浏览器和跨平台的应用程序。Flex基于Flash Player和Adobe AIR运行时环境,可以创建高性能且丰富的互联网...

    Flex3学习指南-是初学者学习Flex必备资料2

    这份指南可能是由一系列章节或教程组成,如“Flex3学习指南9-14.rar”所示,可能包含第9到第14章的内容。 1. **Flex SDK和IDE**: Flex 3开发通常使用Flex Builder(现在称为Flash Builder),这是一个基于Eclipse的...

    FLEX简介第一章关于FLEX课程的基础简介

    1. **强大的UI组件库**:Flex拥有一个丰富的UI组件库,使得开发者能够轻松创建各种复杂的用户界面。 2. **高性能渲染引擎**:利用Flash Player的强大性能,Flex能够实现流畅的动画效果和图形渲染。 3. **跨平台支持*...

    flex工作流(完全通过)

    2. **组件库**: Flex提供了一系列预定义的组件,如按钮、表单、面板等,这些组件在构建工作流界面时非常有用。例如,可以使用表单组件来收集用户输入,按钮组件触发流程的下一步操作。 3. **数据绑定**: Flex支持...

    Flex中文帮助 1,2,3,4章

    本压缩包包含了Flex的中文帮助文档,分为1、2、3、4四章,内容全面且源自官方,对于学习和理解Flex技术体系非常有帮助。 第一章:Flex基础 在这一章中,你会了解到Flex的基本概念和架构,包括Flex SDK(软件开发...

Global site tag (gtag.js) - Google Analytics