fluorinefx java_利用fluorineFx将DataTable从.Net传递到Flash

FluorineFx自带的示例都不错,就是有点不简洁,下面的代码基本上已经最简版了(环境vs2010)

1、先创建一个Web Application,然后添加FluorineFx以及FluorineFx.ServiceBrowser的引用

这二个程序集的默认位置在:

C:"Program Files (x86)"FluorineFx"Bin"net"3.5"FluorineFx.dll

C:"Program Files (x86)"FluorineFx"Bin"net"3.5"FluorineFx.ServiceBrowser.dll

2、然后添加一个DataService.cs类,写好.net的服务端代码

using System.Data;

using FluorineFx;

namespace DataTableDemo

{

[RemotingService]

public class DataService

{

[DataTableType("随便填写什么")]

public object GetCountries(string capital)

{

DataTable tbl = new DataTable();

tbl.Columns.Add("ID", typeof(System.Int32));

tbl.Columns.Add("Country", typeof(System.String));

tbl.Columns.Add("Capital", typeof(System.String));

tbl.Rows.Add(1, "Andorra", "Andorra");

tbl.Rows.Add(2, "United Arab", "Abu Dhabi");

tbl.Rows.Add(3, "BeiJing", "China");

if (capital.Length > 0)

{

DataTable tbl2 = tbl.Clone();

DataRow[] drs = tbl.Select("Capital like '%" + capital + "%'");

foreach (var item in drs)

{

tbl2.Rows.Add(item[0], item[1], item[2]);

}

return tbl2;

}

return tbl;

}

}

}

这段代码很简单,就是返回一个DataTable而已

3、添加一些配置文件

3.1、修改web.config

3.2、创建WEB-INF/flex目录,并创建二个文件remoting-config.xml,services-config.xml

remoting-config.xml内容

class="flex.messaging.services.RemotingService"

messageTypes="flex.messaging.messages.RemotingMessage">

*

services-config.xml内容

true

目录结构如下:

6f737e41c38647a2be256074752715e0.png

4、写Flash调用端

import org.bytearray.remoting.Service;

import org.bytearray.remoting.PendingCall;

import org.bytearray.remoting.events.ResultEvent;

import org.bytearray.remoting.events.FaultEvent;

var gatewayUrl:String="http://localhost:7796/Gateway.aspx";

if (root.loaderInfo.parameters.remotingGatewayPath!=null) {

gatewayUrl=root.loaderInfo.parameters.remotingGatewayPath+"/Gateway.aspx";

}

var service:Service=new Service("DataTableDemo.DataService",gatewayUrl,ObjectEncoding.AMF3);

var rpc:PendingCall=service.GetCountries("B");

rpc.addEventListener( ResultEvent.RESULT, success );

rpc.addEventListener( FaultEvent.FAULT, error );

function success( pEvt:ResultEvent ):void {

txtResult.text="当前网关路径:" + gatewayUrl + ""n调用成功,以下是返回的数据:"n";

var len:int=pEvt.result.length;

var i:int=0;

for (i=0; i

txtResult.appendText("ID:"+pEvt.result[i].ID+",Country:"+pEvt.result[i].Country+",Capital:"+pEvt.result[i].Capital+""n");

}

}

function error( pEvt:FaultEvent ):void {

txtResult.text="当前网关路径:" + gatewayUrl + ""n调用失败,以下是详细信息:"n";

txtResult.appendText( pEvt.fault.description );

}

运行截图:

60b0bb8195073a719895611cdc029cb5.png

作者:菩提树下的杨过

出处:http://yjmyzz.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值