`

第四章 Flex编程入门 (2小节)

    博客分类:
  • Flex
阅读更多

第二节获取并显示数据

为了在应用程序中使用数据 Adobe Flex 包括了 HTTP servers web services remote object services Java objects )进行交互的组件,这些组件被称之为远程过程调用 RPC )服务组件。

Adobe ColdFusion PHP 或类似的服务器技术不同 Flex 应用程序并不直接连接数据库。举个例子,你可以在一 Flex 文件中插 HTTP service 来实现 ColdFusion 文件的交互,以获 MySQL 数据库中的数据,转换 XML ,然后返馈 Flex 应用程序。

在本节中,你将学习创建一个简单 blog 阅读器。你使用了被称之 HTTPService RPC service 组件 RSS 中获取数据,然后将数据绑定 Label DataGrid TextArea LinkButton 控件上。

为了完成这个项目,执行的步骤如下:

  1. 1 . 设置项目
  2. 2 . 检查要访问的远程数据源

出于安全的原因,在客户端计算机 Flash Player 中运行的应用程序,只有在满足如下条件之一的情况下,才能访问远程的数据:

a . 应用程序 SWF 文件与远程数据源位于同一个域中。
b . 使用代理,同 SWF 文件与代理位于同一个服务器中。
c. 在数据源的宿 web 服务器上安 crossdomain.xml (跨域策略)文件 本节中例子使用的是第三种方法

插入并配 blog 阅读 在本小节,你将学习创建一 blog 阅读器

  1.  
    1. 1. 在导航视图中选 Lessons 项目,选 File > New > MXML Application 并创建一个 BlogReader.mxml 的文件
    2. 2 . BlogReader.mxml 设置为被编译的默认文件
  2. 3. MXML 编辑器的设计模式下,从组件视图中拖拉出一个面板容器,并设置它的相应属性值

Title: Blog Reade r Width: 47 5 Height: 40 0

X: 10

Y: 10

  1. 4 . 在设计模式下,从组件视图中拖拉出如下组件到面板容器里 DataGri d TextAre a LinkButto n
  2. 5 . 使用鼠标将控件布置成垂直排列的、左对齐的列
  3. 6 . DataGrid 控件并设置相应属性 Id: dgPost s

X: 20

Y: 2 0 Width: 40 0

7 . TextArea 控件并设置相应属性

X: 20

Y: 17 5 Width: 40 0

8 . LinkButton 控件并设置相应属性 Label: Read Full Pos t

X: 20

Y: 225

界面布局看起来就象这样

9. 点击工具条上 Source button 切换成编辑器源代码模式。 BlogReader.mxml 文件中输入如 MXML 代码 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Panel x="10" y="10" width="475" height="400" layout="absolute " title="Blog Reader" > <mx:DataGrid x="20" y="20" id="dgPosts" width="400" >

<mx:columns> <mx:DataGridColumn headerText="Column 1" dataField="col1"/> <mx:DataGridColumn headerText="Column 2" dataField="col2"/> <mx:DataGridColumn headerText="Column 3" dataField="col3"/>

</mx:columns > </mx:DataGrid > <mx:LinkButton x="20" y="225" label="Read Full Post"/ > <mx:TextArea x="20" y="175" width="400"/ >

</mx:Panel> </mx:Application>

10. 保存文件,完成编译后运行。一个浏览器窗口将打开,如下所示。

到这一步,应用程序还没有显示任 blog 信息。接下来的一步是使用一个称之 HTTPService RPC 服务组件来获 blog 的信息。

HTTPService 组件

blog 阅读器这个项目,其数据源来自 http://www.adobe.com/go/mchotinblog 。你使 HTTPService 组件来访 blog XML 。该组件发 HTTP GET POST 请求,并获取反馈回来的数据。

1. 在源代码模式下, <mx:Application> 标签中输 <mx:HTTPService> 标签

<mx:HTTPService

id="feedRequest"

url="http://weblogs.macromedia.com/mchotin/index.xml"

useProxy="false"/>

url 属性指明了被请求文件所在的位置。在本例中, URL 一直是有效的,但是你仍然

需要确定它是否已经发生改变 useProxy 属性表明你并不打算在服务器上使用代理。因 Matt's blog 上面 crossdomain.xml 设置,所 Flash Player 可以访问该服务器上的远程数据。接下来提示应用程序向指定 URL 发送请求

2. <mx:Application> 标签后,添 creationComplete 属性(粗体显示) <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

creationComplete="feedRequest.send() " >

你的应用程序每次启动时 HTTPService 组件 send ()方法将被调用。该方法向指定 URL HTTP GET POST 请求,并得 HTTP 回应。在本例中 RSS feed 将返 XML 数据。

接下来,检 RSS feed 的获取是否成功。然后将数据绑定 Label 控件上,就象这样

3. <mx:Panel> 标签中, title 属性的值用随后的表达式替换

title="{feedRequest.lastResult.rss.channel.title}"

HTTPService 组件返 XML 时,在名 lastResult ActionScript 对象中进行剖析 lastResult 对象的结构反映 XML 文档的结构

XML 的结构通常如下所示 <rss>

<channel > <title > other child nodes of <channel > <item >

<title>

other child nodes of <item > </item > .. .

HTTPService 组件 lastResult 对象反映了这种结构,你的代码看起来就象这样 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

layout="absolute " creationComplete="feedRequest.send()" >

<mx:HTTPServic e id="feedRequest " url="http://weblogs.macromedia.com/mchotin/index.xml " useProxy="false" / >

<mx:Panel x="10" y="10" width="475" height="400" layout="absolute " title="{feedRequest.lastResult.rss.channel.title}" >

<mx:DataGrid x="20" y="20" id="dgPosts" width="400">

<mx:columns> <mx:DataGridColumn headerText="Column 1" dataField="col1"/> <mx:DataGridColumn headerText="Column 2" dataField="col2"/> <mx:DataGridColumn headerText="Column 3" dataField="col3"/>

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

<mx:LinkButton x="20" y="225" label="Read Full Post"/ > <mx:TextArea x="20" y="175" width="400"/ > </mx:Panel >

</mx:Application>

4. 保存文件,编译完运行。

DataGrid 在应用程序中,使 DataGrid 控件显示新近贴子的标题

  1.  
    1. 1. 在源代码模式下, <mx:DataGrid> 标签中输入随后 dataProvider 属性 <mx:DataGrid x="20" y="20" id="dgPosts" width="400" dataProvider="{feedRequest.lastResult.rss.channel.item} " >
    2. 名称 item XML 结点 DataGrid 控件提供数据。 XML 中这个结点是重复的,所以它 DataGrid 中也是重复的
  2. 2. 在第一 <mx:DataGridColumn> 标签里,键入如随后所示 headerText dataField 属性值

<mx:DataGridColumn headerText=" Posts " dataField=" title " />

DataGrid 控件的第一列用来显示标题。实现它是通过确定包含标题数据 XML 中的字段,然后输入这个字段作 dataField 的属性值。 dataProvider 属性 item )中指定 XML 结点,名 title 的子结点中包含了所需的信息

  1.  
    1. 3. 在第二 <mx:DataGridColumn> 标签中,输入如随后所示 headerText dataField width 属性值 <mx:DataGridColumn headerText=" Date " dataField=" pubDate " width="150" />
    2. DataGrid 中的第二列用来显示日期。在本例中,包含数据的字段被称之 pubDate
  2. 4. 删除第三 <mx:DataGridColumn> 标签,因为我们在这里并不需要第三列 <mx:DataGrid> 标签看起来就象这样 <mx:DataGrid x="20" y="20" id="dgPosts" width="400"

dataProvider="{feedRequest.lastResult.rss.channel.item}">

<mx:columns> <mx:DataGridColumn headerText="Posts" dataField="title" /> <mx:DataGridColumn headerText="Date" dataField="pubDate" width="150" />

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

5. 保存文件,编译后运行。

显示所选的项

当用户 DataGrid 控件中进行选择时,你希望应用程序 TextArea 控件中只显示贴子的头几行内容。 XML 供给器的项结点中,这个信息被包含在一个称之 description 的字段里

1. 在源代码模式中, <mx:TextArea> font-size: 10.5pt; color: #000000;

分享到:
评论

相关推荐

    FLEX 编程入门教程及操作说明

    在"Flex中文帮助No4章A.pdf"中,你可能会学习到Flex应用的基础结构,包括MXML和ActionScript两种主要的编程语言。MXML是一种声明式语言,用于定义用户界面的布局和组件,而ActionScript则是一种面向对象的脚本语言,...

    Flex从入门到精通源代码

    这个压缩包“Flex从入门到精通源代码”显然是针对初学者或者想要深入理解Flex技术的开发者设计的,包含书中示例的源代码,帮助读者更好地理解和实践Flex编程。 在《Flex从入门到精通》这本书中,作者可能涵盖了以下...

    Flex4中文快速入门

    Flex4,全称为Adobe Flex 4,是Adobe公司推出的一款用于构建富互联网应用程序(Rich Internet Applications,RIAs)的框架,主要基于ActionScript和MXML。这个框架在2010年发布,提供了更为强大的图形渲染能力,以及...

    Flex从入门到精通

    ActionScript则是Flex的编程语言,基于ECMAScript,用于实现逻辑控制和交互功能。 在"Flex从入门到精通"这套教程中,你将学习: 1. **基础知识**:了解Flex开发环境的搭建,包括安装Adobe Animate CC或Flex ...

    Flex从入门到实践——源代码(2,5,6,7章)

    这个压缩包文件包含的源代码是《Flex从入门到实践》这本书的第2、5、6、7章的实践案例,旨在帮助读者深入理解和掌握Flex的基本概念、组件使用、数据绑定以及高级特性。 第2章:基础篇 在这一章中,你将学习Flex的...

    FLEX从入门到精通.pdf

     第4章 运用ActionScript3.0  4.1 Flash平台框架  4.2 显示编程  4.3 事件模型  4.3.1 事件类和类型  4.3.2 事件进程  4.3.3 事件流  4.3.4 Event Dispatcher类  4.4 Flash Player API  4.4.1...

    SuperMap iClient for Flex从入门到精通 第1章

    《SuperMap iClient for Flex从入门到精通》第一章节主要介绍了如何使用SuperMap iClient for Flex构建Web GIS应用,这是基于Apache Flex技术的客户端开发包,适用于创建跨浏览器、跨平台的富客户端GIS应用程序。...

    FLEX快速入门.zip

    FLEX快速入门.zip 用户在界面输入的数据可能不适合应用系统。在Flex应用程序中,可以使用validator来确保表单里的字段值满足某些标准。例如,你可以使用validator来确定用户输入有效的电话号码,确定字符串大于最小...

    FLEX简单的入门快速总结

    MXML是一种声明式语言,常用于构建Flex界面,而ActionScript是面向对象的编程语言,用于编写逻辑代码。MXML可以嵌入ActionScript,反之亦然,这使得两种语言可以无缝集成。在Flex项目中,你可能会看到MXML文件定义...

    Flex资料大全(Flex白皮书 Flex cookbok Flex编程指南 Flex设计模式等)

    Flex白皮书是Adobe官方发布的技术文档,通常包含Flex框架的概述、技术特点、开发环境的搭建、基本组件介绍以及如何创建第一个Flex应用等内容。它为开发者提供了全面的框架理解,是初学者入门的必备资料。 2. **...

    Flex从入门到实践——源代码(11章)

    第4章:数据绑定与事件处理 数据绑定是Flex中连接UI与业务逻辑的重要机制。这一章会讲解如何实现数据的双向绑定,以及事件监听和处理机制,包括Event和ChangeEvent等事件类型。 第5章:状态管理和皮肤设计 Flex允许...

    Flex基础编程实例

    4. **面向对象编程**:Flex支持面向对象编程(OOP)原则,包括封装、继承和多态。类是OOP的核心,它定义了一组数据属性(字段)和行为(方法)。通过创建对象实例,你可以使用类的属性和方法。继承允许一个类(子类...

    Flex Blazeds入门教程

    ### Flex Blazeds入门教程详解 #### 一、引言 Flex Blazeds入门教程,由刘铭朝撰写于2008年3月21日,旨在解决开发者在搭建Flex与LCDS(Flex Data Services)工程时遇到的常见问题。这篇教程不仅详细介绍了创建项目...

    Flex从入门到实践.

    2. Flex运行机制 Flex的运行基于SWF文件,这种文件格式经过压缩,下载速度快,可以在安装了Flash Player的浏览器或独立环境中运行。Flex代码通常由MXML(一种XML衍生语言)和ActionScript(一种借鉴JavaScript和...

    flex blazeds的入门例子

    1. Flex编程:包括MXML和ActionScript的基础,以及如何创建用户界面组件和事件处理。 2. BlazeDS配置:如何在服务器端设置BlazeDS,包括服务定义和服务映射。 3. AMF通信:理解Action Message Format的工作原理以及...

    Flex开发入门

    Flex是由Adobe公司开发的一套用于构建RIA的开源框架,它基于ActionScript编程语言和MXML标记语言。MXML是Flex中的一个重要组成部分,它类似于HTML,用来描述用户界面的布局和组件。通过MXML,开发者可以以声明式的...

    第1章_Flex基础入门

    第1章_Flex基础入门

Global site tag (gtag.js) - Google Analytics