`

第一章 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 文件对数据源的访问。

 

 

分享到:
评论

相关推荐

    FluorineFx中文帮助[中英对照译文]

    这一章分为多个小节,分别针对不同版本的 ASP.NET(1.1 和 2.0)以及对应的 Visual Studio 版本(2003 和 2005)提供指导。这些步骤包括应用程序目录的布局、使用 FluorineFx 的向导来快速创建项目,以及如何使用 ...

    FUJI NXT2编程资料

    - **第3章**:Job编制器 - 创建NXT-2 Job的基础步骤 - 从变更现有Job开始 - 从手动输入顺序数据开始 - 从导入各种CAD数据开始(CentroidCAD、CCIMF、MCSIMF、AllegroCAD、MentorCAD等) - NXT-2 Job设置 - ...

    使用 ACTIONSCRIPT 3.0组件 (AS3组件帮助文档)

    #### 第 1 章:简介 **目标读者** 本章节旨在为那些熟悉 Flash 应用程序开发及 ActionScript 编程的开发人员提供指导。这些开发人员希望通过使用组件来提高工作效率。 **系统要求** 为了使用 ActionScript 3.0 ...

    实时监控体系:基于Prometheus的API性能指标可视化方案.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    5个提升DeepSeekAPI生成质量的调参技巧,开发者必看!.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    ACM动态规划模板-区间修改线段树问题模板

    ACM动态规划模板-区间修改线段树问题模板

    深度解析C语言调试技巧:VSCode+GDB实战排错指南.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    10个高效调用DeepSeekAPI的技巧:从请求优化到缓存策略.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    基于Python语言的PersonRelationKnowledgeGraph设计源码

    本项目为Python语言开发的PersonRelationKnowledgeGraph设计源码,总计包含49个文件,涵盖19个.pyc字节码文件、12个.py源代码文件、8个.txt文本文件、3个.xml配置文件、3个.png图片文件、2个.md标记文件、1个.iml项目配置文件、1个.cfg配置文件。该源码库旨在构建一个用于表示和查询人物关系的知识图谱系统。

    成本优化指南:通过Token计算模型将API费用降低57%的秘诀.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    大华智能物联平台,的对接其他接口的API,可以获得视频拉流的flv/hls/rstp 的拉流地址,demo项目为springBoot项目,可以通过摄像头的视频通道,获取到实时拉流的uRl

    rtsp实时预览接口URL:/evo-apigw/admin/API/MTS/Video/StartVideo HLS、FLV、RTMP实时预览接口方式 :接口URL/evo-apigw/admin/API/video/stream/realtime 参数名 必选 类型 说明 data true string Json串 +channelId true string 视频通道编码 +streamType true string 码流类型:1=主码流, 2=辅码流,3=辅码流2 +type true string 协议类型:hls,hlss,flv,flvs,ws_flv,wss_flv,rtmp hls:http协议,m3u8格式,端口7086; hlss:https协议,m3u8格式,端口是7096; flv:http协议,flv格式,端口7886; flvs:https协议,flv格式,端口是7896; ws_flv:ws协议,flv格式,端口是7886; wss_flv:wss协议,flv格式,端口是7896; rtmp:rtmp协议,端口是1975;

    Simulink永磁风机飞轮储能系统二次调频技术研究:频率特性分析与参数优化,Simulink永磁风机飞轮储能二次调频技术:系统频率特性详解及参数优化研究参考详实文献及两区域系统应用,simulink

    Simulink永磁风机飞轮储能系统二次调频技术研究:频率特性分析与参数优化,Simulink永磁风机飞轮储能二次调频技术:系统频率特性详解及参数优化研究参考详实文献及两区域系统应用,simulink永磁风机飞轮储能二次调频,系统频率特性如下,可改变调频参数改善频率。 参考文献详细,两区域系统二次调频。 ,核心关键词: 1. Simulink 2. 永磁风机 3. 飞轮储能 4. 二次调频 5. 系统频率特性 6. 调频参数 7. 改善频率 8. 参考文献 9. 两区域系统 以上关键词用分号(;)分隔,结果为:Simulink;永磁风机;飞轮储能;二次调频;系统频率特性;调频参数;改善频率;参考文献;两区域系统。,基于Simulink的永磁风机与飞轮储能系统二次调频研究:频率特性及调频参数优化

    MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图

    MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照展示,MATLAB驱动的ASR防滑转模型:PID与对照控制算法对比,冰雪路面条件下滑移率与车速轮速对照图展示,MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型 选择PID控制算法以及对照控制算法,共两种控制算法,可进行选择。 选择冰路面以及雪路面,共两种路面条件,可进行选择。 控制目标为滑移率0.2,出图显示车速以及轮速对照,出图显示车辆轮胎滑移率。 模型简单,仅供参考。 ,MATLAB; ASR模型; 防滑转模型; 牵引力控制系统模型; PID控制算法; 对照控制算法; 冰路面; 雪路面; 控制目标; 滑移率; 车速; 轮速。,MATLAB驱动的ASR模型:PID与对照算法在冰雪路面的滑移率控制研究

    芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx

    芯片失效分析方法介绍 -深入解析芯片故障原因及预防措施.pptx

    4131_127989170.html

    4131_127989170.html

    PostgreSQL自动化部署与优化脚本:智能化安装、安全加固与监控集成

    内容概要:本文提供了一个全面的PostgreSQL自动化部署解决方案,涵盖智能环境适应、多平台支持、内存与性能优化以及安全性加强等重要方面。首先介绍了脚本的功能及其调用方法,随后详细阐述了操作系统和依赖软件包的准备过程、配置项的自动生成机制,还包括对实例的安全性和监控功能的强化措施。部署指南给出了具体的命令操作指导,便于新手理解和执行。最后强调了该工具对于不同硬件条件和服务需求的有效应对能力,特别是针对云计算环境下应用的支持特点。 适合人群:对PostgreSQL集群运维有一定基础并渴望提高效率和安全性的数据库管理员及工程师。 使用场景及目标:本脚本能够帮助企业在大规模部署时减少人工介入时间,确保系统的稳定性与高性能,适用于各类需要稳定可靠的数据库解决方案的企业或机构,特别是在大数据量和高并发事务处理场合。 其他说明:文中还提及了一些高级功能如自动备份、流复制等设置步骤,使得该方案不仅可以快速上线而且能满足后续维护和发展阶段的要求。同时提到的技术性能数据也为用户评估其能否满足业务需求提供了直观参考。

    房地产开发合同[示范文本].doc

    房地产开发合同[示范文本].doc

    成本优化实战:DeepSeekAPI的Tokens计算与计费策略拆解.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    安全必读:DeepSeek接口调用中的数据加密与合规实践.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    工程技术承包合同[示范文本].doc

    工程技术承包合同[示范文本].doc

Global site tag (gtag.js) - Google Analytics