- Adobe Flex 教程
- 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 服務可以與任何伺服器端技術整合。
Flex RPC 服務之一提供對壓縮二進位制資料的內建支援,以便透過網路傳輸,並且速度非常快。
Flex 提供以下三種類型的 RPC 服務
| 序號 | RPC 服務及描述 |
|---|---|
| 1 | HttpService <mx:HTTPService> 標籤用於在 MXML 檔案中表示 HTTPService 物件。當您呼叫 HTTPService 物件的 send() 方法時,它會向指定的 URL 發出 HTTP 請求,並返回 HTTP 響應。您還可以使用 HTTP HEAD、OPTIONS、TRACE 和 DELETE 方法。 |
| 2 | WebService <mx:WebService> 用於訪問符合 SOAP 標準的 Web 服務的操作。 |
| 3 | RemoteObject <mx:RemoteObject> 標籤用於在 MXML 檔案中表示 HTTPService 物件。此標籤允許您使用 Action Message Format (AMF) 編碼訪問 Java 物件的方法。 |
我們將詳細討論 HTTP 服務。我們將使用放置在伺服器上的 XML 原始檔,並透過 HTTP 服務在客戶端訪問它。
Items.xml
<items> <item name = "Book" description = "History of France"></item> <item name = "Pen" description = "Parker Pen"></item> <item name = "Pencil" description = "Stationary"></item> <items>
HTTPService 宣告
現在宣告一個 HTTPService 並傳遞上述檔案的 URL 給它
<fx:Declarations> <mx:HTTPService id = "itemRequest" url = "https://tutorialspoint.tw/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 | 在包 com.tutorialspoint.client 下建立一個名為 HelloWorld 的專案,如Flex - 建立應用程式章節所述。 |
| 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 = "https://tutorialspoint.tw/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 - 建立應用程式章節中一樣,在正常模式下編譯並執行應用程式。如果您的應用程式一切正常,它將產生以下結果:[ 線上嘗試 ]