- Adobe Flex 教程
- 伟创力 - 主页
- Flex - 概述
- Flex - 环境
- Flex - 应用
- Flex - 创建应用程序
- Flex - 部署应用程序
- Flex - 生命周期阶段
- Flex - 使用 CSS 设计样式
- Flex - 与皮肤风格
- Flex - 数据绑定
- Flex - 基本控制
- Flex - 表单控件
- Flex - 复杂的控制
- Flex - 布局面板
- Flex - 视觉效果
- Flex - 事件处理
- Flex - 自定义控件
- Flex - RPC 服务
- Flex - FlexUnit 集成
- Flex - 调试应用程序
- Flex - 国际化
- Flex - 打印支持
- Adobe Flex 资源
- Flex - 快速指南
- Flex - 有用的资源
- Flex - 讨论
Flex - RPC 服务
Flex提供RPC服务,将服务器端数据提供给客户端。Flex 提供了对服务器端数据的大量控制。
使用 Flex RPC 服务,我们可以定义要在服务器端执行的用户操作。
Flex RPC Sservices 可以与任何服务器端技术集成。
Flex RPC 服务之一为通过线路传输的压缩二进制数据提供内置支持,并且速度相当快。
Flex提供以下三种类型的RPC服务
| 先生编号 | RPC 服务及说明 |
|---|---|
| 1 | Http服务 <mx:HTTPService> 标签用于表示 MXML 文件中的 HTTPService 对象。当您调用 HTTPService 对象的 send() 方法时,它会向指定的 URL 发出 HTTP 请求,并返回 HTTP 响应。您还可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。 |
| 2 | 网络服务 <mx:WebService> 用于访问符合 SOAP 的 Web 服务的操作。 |
| 3 | 远程对象 <mx:RemoteObject> 标记用于表示 MXML 文件中的 HTTPService 对象。此标记使您可以使用操作消息格式 (AMF) 编码来访问 Java 对象的方法。 |
我们将详细讨论 HTTP 服务。我们将使用放置在服务器上的 XML 源文件,并通过 HTTP 服务在客户端访问它。
项目.xml
<items> <item name = "Book" description = "History of France"></item> <item name = "Pen" description = "Parker Pen"></item> <item name = "Pencil" description = "Stationary"></item> <items>
HTTP服务声明
现在声明一个 HTTPService 并将上面文件的 url 传递给它
<fx:Declarations> <mx:HTTPService id = "itemRequest" url = "http://www.tutorialspoint.com/flex/Items.xml" /> </fx:Declarations>
RPC 调用
调用 itemRequest.send() 方法并将 itemRequest Web 服务的 lastResult 对象中的值绑定到 Flex UI 组件。
...
itemRequest.send();
...
<mx:DataGrid id = "dgItems" height = "80%" width = "75%"
dataProvider = "{itemRequest.lastResult.items.item}">
<mx:columns>
<mx:DataGridColumn headerText = "Name" dataField = "name" />
<mx:DataGridColumn headerText = "Description" dataField = "description" />
</mx:columns>
</mx:DataGrid>
RPC 服务调用示例
现在,让我们按照以下步骤在 Flex 应用程序中测试 RPC 服务 -
| 步 | 描述 |
|---|---|
| 1 | 按照Flex - 创建应用程序一章中的说明,在com.tutorialspoint.client包下创建一个名为HelloWorld的项目。 |
| 2 | 按如下所述修改HelloWorld.mxml 。保持其余文件不变。 |
| 3 | 编译并运行应用程序以确保业务逻辑按照要求运行。 |
以下是修改后的 mxml 文件src/com.tutorialspoint/HelloWorld.mxml的内容。
<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
minWidth = "500" minHeight = "500" creationComplete = "init(event)">
<fx:Style source = "/com/tutorialspoint/client/Style.css" />
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function init(event:FlexEvent):void {
itemRequest.send();
}
]]>
</fx:Script>
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
<s:BorderContainer width = "630" height = "480" id = "mainContainer"
styleName = "container">
<s:VGroup width = "100%" height = "100%" gap = "10"
horizontalAlign = "center" verticalAlign = "middle">
<s:Label id = "lblHeader" text = "RPC Service Demonstration"
fontSize = "40" color = "0x777777" styleName = "heading" />
<s:Panel id = "parentPanel" title = "Using RPC Services"
width = "500" height = "200" >
<s:layout>
<s:VerticalLayout gap = "10"
verticalAlign = "middle" horizontalAlign = "center" />
</s:layout>
<mx:DataGrid id = "dgItems" height = "80%" width = "75%"
dataProvider = "{itemRequest.lastResult.items.item}">
<mx:columns>
<mx:DataGridColumn headerText = "Name" dataField = "name" />
<mx:DataGridColumn headerText = "Description"
dataField = "description" />
</mx:columns>
</mx:DataGrid>
</s:Panel>
</s:VGroup>
</s:BorderContainer>
</s:Application>
准备好完成所有更改后,让我们在正常模式下编译并运行应用程序,就像我们在Flex - 创建应用程序一章中所做的那样。如果您的应用程序一切正常,它将产生以下结果:[在线尝试]
