Flex项目中遇到的几个问题

(转)Flex项目中遇到的几个问题

1.flex调用远程Java服务报错:Security error accessing url
解决方案:跨域的问题
增加一个crossdomain.xml

<?xml version= "1.0" ?>    <cross-domain-policy>    <!-- domain= "*"  everyone access -->    <allow-access-from domain= "*"  />    <allow-http-request-headers-from domain= "*"  headers= "*" />    </cross-domain-policy>  

<?xml version="1.0"?> <cross-domain-policy><!-- domain="*" everyone access --> <allow-access-from domain="*" /> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy>
放到tomcat\webapps\ROOT下
2.flex string类型转到数值型
1 使用parseInt() 函数从一个string到integer
2 使用parseFloat() 函数从一个string到Number
3 使用Number构造器
3.httpservice重复调用同一个连接,缓冲的问题
在httpservice的参数里加上一个随机生成的参数,服务器端不进行处理,纯粹就是为了欺骗浏览器让它以为不是同一个url。
4.flex随机函数
Math.Random()返回一个随机数n, 0 <= n < 1
5.flex进行编码,java进行解码

var s = httpEncoding( "老天自有安排" );    //进行文字编码    private  function httpEncoding(param:String):String    {         return  encodeURIComponent(param);    }   

var s = httpEncoding("老天自有安排"); //进行文字编码private function httpEncoding(param:String):String{ return encodeURIComponent(param);}
java接收结果是:%C0%CF%CC%EC%D7%D4%D3%D0%B0%B2%C5 %C5

parameter = java.net.URLDecoder.decode(parameter ,  "UTF-8" );  

parameter = java.net.URLDecoder.decode(parameter , "UTF-8");
由于FLEX对中文的支持不是很友好,所以在前台 向 后台 传递数据的时候采取的是 UTF-8 的编码
所以当遇到中文的时候 请使用
encodeURI(uri:String):String
encodeURIComponent(uri:String):String
escape(str:String):String
这三个方法中任意一个
然后在 JAVA 里面 使用
URLDecoder.decode(String s,String enc) 1.表示要解码的字符串 2.表示解码成什么格式
用HTTPService或URLRequest与JAVA后台通信的时候可能会遇到乱码问题,因为
Flex默认编码是UTF-8,而服务器端可能使用的是GB2312编码,解决这个问题未必
要在Flex上下功夫,可以在服务器端使用

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

request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
上面的是设置服务器当前页面以utf-8接收信息,下面的是用utf-8格式发送信息。
其他语言的服务器也是这个道理。
6.

var o: Object = {para1: "Hello" ,para2: "This is a Para" };    httpService.send(o);
 

你可能感兴趣的:(Flex项目中遇到的几个问题)