因为未来工作需要,所以这个周末学习了Flex,主要是flex的传参数和远程调用java类方面的知识,学习中当然碰到了许多问题,
很简单的例子总是调试不好,有时气的想把电脑砸了,现把知识整理一下,避免新手们走弯路,以下例子都是网上搜集到的进行了
一点改动。
1. flex 传参数的例子,我用的组件<mx:httpservice/>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
//对提交给后台的参数进行UTF-8的编码处理
private function httpEncoding(param:String):String{
return encodeURIComponent(param);
}
private function doRequest():void{
var url:String = "http://localhost:8080/TestFlex/Index.jsp";
srv.url = url;
var params:URLVariables = new URLVariables();
params.user = httpEncoding("三石");
params.psw = "123";
hs.send(params);
}
private function resultHandler(event:ResultEvent):void{
var ss :String = event.result as String;
Alert.show(ss);
}
]]>
</mx:Script>
<mx:HTTPService id="hs" resultFormat="text" result="resultHandler(event);"/>
<mx:Panel title="测试与jsp后台交互" layout="absolute" width="100%" height="90%">
<mx:Button id="btn_do" label="取得数据" click="doRequest();"/>
<mx:Spacer height="1"/>
<mx:DataGrid id="dg" width="100%" height="100%" y="28"/>
</mx:Panel>
</mx:Application>
这个例子的目的是给index.jsp传两个参数user,psw,用的是<mx:HTTPService/>组件,这个组件里有一些属性,其中一般要设置的
属性有,id,resultFormat[这个属性很重要,它设置返回结果的类型,你要根据你返回的类型对它进行赋值,默认是值是object],
result[这个属性就是调用返回结果的函数],url[这个属性可以写到函数里,这样比较灵活,意思就是你传参数的目的地,参数可以直接
写在url后面,如url?a=123&b="sanshi",还有一种方式就是代码中的写法,利用URLVariables传参数, 如果涉及到中文编码的问题,要进行
转码,这个例子没转成功,还是乱码,还有一种是<mx:request/>,方法比较多,看个人喜好了],HTTPService还可以硬编码,不需要<mx:HTTPSErvice/>,就是在函数里new一个出来。