看了阳阳的博客还有网上一些关于环境搭建的东西,按着做没有出来预期结果,自己把步奏和问题再记录一遍,为后来人参考,如有不足和错误,请指出。
参考文章
http://www.jb51.net/article/18588.htm
http://blog.csdn.net/zy_sun1023/article/details/8070968
1.安装VS2010的FluorineFx项目模板
下载地址:http://download.csdn.net/detail/gis0911178/7831253
(1)安装后,新建项目(建立项目后,点击“引用”文件夹,发现Fluorine.dll等几个动态库都出现黄色三角警示标,此时需要手动添加。虽然VS2010需要安装FluorineFxTemp模版,但官网上的Fluorine还是必须装的,需手动重新添加的动态库即在Fluorine的安装目录下的framework\3.5下找到)
(2)在解决方案资源管理器中右击Console.aspx选择在浏览器中查看,
效果如下
(3)到这里.NET的服务器端就开发完成了
(4)打开Adobe Flash builder 4打开
首先创建Flex项目,并将项目路径指向前建立的FluorineFx网站的根路径:FlashRemotingWebApplication文件夹,应用程序类型为Web,
然后是下一步,
应用程序服务器类型为ASP.NET,选择使用IIS,Web应用程序根目录还是FlashRemotingWebApplication文件夹,Web应用程序URL,其中端口可以看图一得出,不同电脑情况不同
Flex项目创建完毕,下面在通过一些相应的配置就可以通过FluorineFx和.NET通信了。
(5)Flex程序建立完毕后,打开Flex项目属性,对Flex编译器中的附加编译参数进行修改,开发项目属性设置面板,设置其Flex Compiler为下图所示(-services的配置也可以设置为相对路径):-services "E:\lcl\VisualStudio2010\FluorineFX\FluorineFX\FlashRemotingWebApplication\WEB-INF\flex\services-config.xml"
到这里Flex端的配置就全部完成,下面我们通过FluorineFx库模板为我们生成的Sample为例来测试下该环境是否可以通过,在Flex的mxml文件下通过标签来访问远程对象,详细如下:
<</SPAN>mx:RemoteObject id="service" destination="fluorine"
source="FlashRemotingServiceLibrary.Sample">
<</SPAN>mx:method name="Echo" result="onResult(event)">
</</SPAN>mx:method>
</</SPAN>mx:RemoteObject>
这里需要注意的是destination需要设置为与remoting-config.xml中的destination的id一致,source则配置为远程对象的全路径(名称空间+类),通过标签配置远程对象下的方法并设置其成功调用后的结果处理函数,下面便可通过id去调用远程方法了。
[CDATA[
import mx.rpc.events.ResultEvent;
internal function onClick():void
{
service.Echo(txtInput.text);
}
internal function onResult(evt:ResultEvent): void
{
txtResult.text = evt.result.toString();
}
]] >
<</SPAN>/mx:Script>
下面是完整的Flex客户端mxml的代码定义:
http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
source="FlashRemotingServiceLibrary.Sample">
import mx.rpc.events.ResultEvent;
internal function onClick():void
{
service.endpoint="http://localhost:1149/Gateway.aspx"
service.Echo(txtInput.text);
}
internal function onResult(evt:ResultEvent):void
{
txtResult.text=evt.result.toString();
}
本文示例截图:
看了阳阳的博客还有网上一些关于环境搭建的东西,按着做没有出来预期结果,自己把步奏和问题再记录一遍,为后来人参考,如有不足和错误,请指出。
1.安装VS2010的FluorineFx项目模板
下载地址:http://download.csdn.net/detail/gis0911178/7831253
(1)安装后,新建项目(建立项目后,点击“引用”文件夹,发现Fluorine.dll等几个动态库都出现黄色三角警示标,此时需要手动添加。虽然VS2010需要安装FluorineFxTemp模版,但官网上的Fluorine还是必须装的,需手动重新添加的动态库即在Fluorine的安装目录下的framework\3.5下找到)
(2)在解决方案资源管理器中右击Console.aspx选择在浏览器中查看,
效果如下
(3)到这里.NET的服务器端就开发完成了
(4)打开Adobe Flash builder 4打开
首先创建Flex项目,并将项目路径指向前建立的FluorineFx网站的根路径:FlashRemotingWebApplication文件夹,应用程序类型为Web,
然后是下一步,
应用程序服务器类型为ASP.NET,选择使用IIS,Web应用程序根目录还是FlashRemotingWebApplication文件夹,Web应用程序URL,其中端口可以看图一得出,不同电脑情况不同
Flex项目创建完毕,下面在通过一些相应的配置就可以通过FluorineFx和.NET通信了。
(5)Flex程序建立完毕后,打开Flex项目属性,对Flex编译器中的附加编译参数进行修改,开发项目属性设置面板,设置其Flex Compiler为下图所示(-services的配置也可以设置为相对路径):-services "E:\lcl\VisualStudio2010\FluorineFX\FluorineFX\FlashRemotingWebApplication\WEB-INF\flex\services-config.xml"
到这里Flex端的配置就全部完成,下面我们通过FluorineFx库模板为我们生成的Sample为例来测试下该环境是否可以通过,在Flex的mxml文件下通过标签来访问远程对象,详细如下:
<</SPAN>mx:RemoteObject id="service" destination="fluorine"
source="FlashRemotingServiceLibrary.Sample">
<</SPAN>mx:method name="Echo" result="onResult(event)">
</</SPAN>mx:method>
</</SPAN>mx:RemoteObject>
这里需要注意的是destination需要设置为与remoting-config.xml中的destination的id一致,source则配置为远程对象的全路径(名称空间+类),通过标签配置远程对象下的方法并设置其成功调用后的结果处理函数,下面便可通过id去调用远程方法了。
[CDATA[
import mx.rpc.events.ResultEvent;
internal function onClick():void
{
service.Echo(txtInput.text);
}
internal function onResult(evt:ResultEvent): void
{
txtResult.text = evt.result.toString();
}
]] >
<</SPAN>/mx:Script>
下面是完整的Flex客户端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="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<mx:RemoteObject id="service" destination="fluorine"
source="FlashRemotingServiceLibrary.Sample">
<mx:method name="Echo" result="onResult(event)">
</mx:method>
</mx:RemoteObject>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
internal function onClick():void
{
service.endpoint="http://localhost:1149/Gateway.aspx"
service.Echo(txtInput.text);
}
internal function onResult(evt:ResultEvent):void
{
txtResult.text=evt.result.toString();
}
]]>
</fx:Script>
<mx:Panel x="53" y="52" width="250" height="200" layout="absolute" title="测试FluorineFx" fontSize="12">
<mx:TextInput x="35" y="21" id="txtInput"/>
<mx:Button x="35" y="63" label="确 定" fontWeight="normal" click="onClick()"/>
<mx:Label x="35" y="95" text="结 果:"/>
<mx:TextInput x="35" y="123" width="160" id="txtResult"/>
</mx:Panel>
</s:Application>
本文示例截图: