flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘.
????????软件环境:windows7+flex4+myeclipse8.5+blazeds
????????功能描述:分别用代码实现了三种flex4与Java通信
????????三种方式:
???????????????????????1?flex 与普通java类通信RemoteObject
???????????????????????2 flex 与服务器交互HTTPService
???????????????????????3 flex与webservice交互WebService
????????1?flex 与普通java类通信RemoteObject
???????普通Java类:????????

package
?com.flex.demo;


/**

?*?功能描述:该类用来实现flex与普通java类中的方法通信

?*?@author?Administrator

?*

?*/

public
?
class
?SimpleService?
{


????public?String?sayHello(String?name){

????????return?"Hello,?"+name;

????}

}

????????配置说明:配置remoting-config.xml

<
destination?
id
="myservice"
>

????????
<
properties
>

????????????
<
source
>
com.flex.demo.SimpleService
</
source
>

????????
</
properties
>

????
</
destination
>
????????调用

<!--
flex?与普通java类通信
-->

????????
<
s:RemoteObject?
id
="serv"
?destination
="myservice"
?fault
="serv_faultHandler(event)"
?result
="serv_resultHandler(event)"
>

????????????

????????
</
s:RemoteObject
>
????????2flex 与服务器交互HTTPService
????????servlet代码????????

package
?com.flex.demo;


import
?java.io.IOException;


import
?javax.servlet.ServletException;

import
?javax.servlet.http.HttpServlet;

import
?javax.servlet.http.HttpServletRequest;

import
?javax.servlet.http.HttpServletResponse;


/**

?*?功能描述:该servlet用来与flex进行交互

?*?@author?Administrator

?*

?*/

@SuppressWarnings(
"
serial
"
)

public
?
class
?SimpleServiceServlet?
extends
?HttpServlet?
{

????

????@Override

????protected?void?service(HttpServletRequest?request,?HttpServletResponse?response)

????????????throws?ServletException,?IOException?{

????????request.setCharacterEncoding("utf-8");

????????response.setCharacterEncoding("utf-8");

????????response.getWriter().write("我是服务器");

????}

}

????????调用

<!--
?flex?与服务器交互
-->

????????
<
s:HTTPService?
id
="service"
?fault
="service_faultHandler(event)"
?result
="service_resultHandler(event)"
?url
="http://localhost:8080/flexdemo/simpleServiceServlet"
>

????????????

????????
</
s:HTTPService
>
????????3flex与webservice交互WebService

<!--
flex与webservice交互这里调用一个天气预报的webservice
-->

????????
<
s:WebService?
id
="ws"
?

??????????????????????wsdl
="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"
?

??????????????????????fault
="ws_faultHandler(event)"
?

??????????????????????result
="ws_resultHandler(event)"
?

??????????????????????showBusyCursor
="true"
>

????????????
<!--
?第二种调用webservice的方法<s:operation>
-->

????????????
<!--
?<s:operation?name="getWeatherbyCityName">?webservice中的方法名
-->

????????????
<
s:operation?
name
="getWeatherbyCityName"
>

????????????????
<!--
传递的参数
-->

????????????????
<
s:request
>

????????????????????
<!--
参数名称必须与webservice中定义的参数名一致否则调用不成功报错
-->

????????????????????
<
theCityName
>

????????????????????????{city.text}

????????????????????
</
theCityName
>

????????????????
</
s:request
>

????????????
</
s:operation
>

????????????

????????
</
s:WebService
>
????????三种方式完整的配置例子

<?
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"

???????????????creationComplete
="service.send()"

???????????????
>

????
<
fx:Script
>

????????
<
????????????import?mx.controls.Alert;

????????????import?mx.rpc.events.FaultEvent;

????????????import?mx.rpc.events.ResultEvent;


????????????//错误处理函数

????????????protected?function?serv_faultHandler(event:FaultEvent):void

????????????{

????????????????Alert.show("调用失败了:"+event.fault.message?as?String,"提示");

????????????}


????????????//成功调用函数

????????????protected?function?serv_resultHandler(event:ResultEvent):void

????????????{

????????????????Alert.show("调用成功了:"+event.result?as?String,"提示");

????????????}



????????????protected?function?service_faultHandler(event:FaultEvent):void

????????????{

????????????????Alert.show("调用失败了:"+event.fault.message?as?String,"提示");

????????????}



????????????protected?function?service_resultHandler(event:ResultEvent):void

????????????{

????????????????Alert.show("调用成功了:"+event.result?as?String,"提示");

????????????}



????????????protected?function?ws_faultHandler(event:FaultEvent):void

????????????{

????????????????Alert.show("调用失败了:"+event.fault.message?as?String,"提示");

????????????}

????????????

????????????//调用成功了

????????????protected?function?ws_resultHandler(event:ResultEvent):void

????????????{

????????????????trace(event.result);

????????????????lbl.text=(String)(event.result);

????????????}


????????????//第一种调用webservice的方法

????????????//此方法调用webservice

????????????protected?function?btn_clickHandler(event:MouseEvent):void

????????????{

????????????????//ws.getWeatherbyCityName(city.text);

????????????????//第二中调用webservice的方法

????????????????ws.getWeatherbyCityName.send();

????????????}


????????????

????????????

????????
]]>

????
</
fx:Script
>

????
<
fx:Declarations
>

????????
<!--
?将非可视元素(例如服务、值对象)放在此处?
-->

????????

????????
<!--
flex?与普通java类通信
-->

????????
<
s:RemoteObject?
id
="serv"
?destination
="myservice"
?fault
="serv_faultHandler(event)"
?result
="serv_resultHandler(event)"
>

????????????

????????
</
s:RemoteObject
>

????????

????????
<!--
?flex?与服务器交互
-->

????????
<
s:HTTPService?
id
="service"
?fault
="service_faultHandler(event)"
?result
="service_resultHandler(event)"
?url
="http://localhost:8080/flexdemo/simpleServiceServlet"
>

????????????

????????
</
s:HTTPService
>

????????

????????
<!--
flex与webservice交互这里调用一个天气预报的webservice
-->

????????
<
s:WebService?
id
="ws"
?

??????????????????????wsdl
="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"
?

??????????????????????fault
="ws_faultHandler(event)"
?

??????????????????????result
="ws_resultHandler(event)"
?

??????????????????????showBusyCursor
="true"
>

????????????
<!--
?第二种调用webservice的方法<s:operation>
-->

????????????
<!--
?<s:operation?name="getWeatherbyCityName">?webservice中的方法名
-->

????????????
<
s:operation?
name
="getWeatherbyCityName"
>

????????????????
<!--
传递的参数
-->

????????????????
<
s:request
>

????????????????????
<!--
参数名称必须与webservice中定义的参数名一致否则调用不成功报错
-->

????????????????????
<
theCityName
>

????????????????????????{city.text}

????????????????????
</
theCityName
>

????????????????
</
s:request
>

????????????
</
s:operation
>

????????????

????????
</
s:WebService
>

????????

????????

????
</
fx:Declarations
>

????
<
s:TextInput?
x
="488"
?y
="72"
?id
="city"
/>

????
<
s:Button?
x
="633"
?y
="72"
?label
="查看"
?id
="btn"
?click
="btn_clickHandler(event)"
/>

????
<
s:Label?
x
="224"
?y
="128"
?id
="lbl"
?width
="820"
?height
="376"
/>

</
s:Application
>

????????初次接触flex的朋友,看上面的肯定很迷惑,因此这里录制了视频教程,视频的质量是蛮好的,该视频从头至尾演示了flex4整合Java的过程.为了方便在windows平台下播放,该视频默认导出格式为exe,在此说明该文件并非病毒,实乃视频文件,大家可放心观看.
点我下载flex4与Java交互演示视频
????????视频截图:

?

????????
点我下载完整的项目文件