由于flex默认包装的页面是html页面,所以与jsp不同的是参数是传递在“#”后面,而jsp是在“?”后面,所以这点得弄清。
要解析参数,首先需要把地址栏链接参数链(即“#”后面的参数对)给获取下来,这个有很多方法,比如调用JavaScript的 ExternalInterface.call()方法,本人用的是flex的静态类BrowserManager获得的,代码如下所示:
- /**
- * 获取地址栏参数链
- * */
- public function getAllParams():String{
- var bm:IBrowserManager=BrowserManager.getInstance();
- bm.init();
- return bm.fragment
- }
此方法返回的是地址栏参数对。
下面需要对此参数对进行分割并保存在一个object对象里,代码如下所示:
- /**
- * 接收并解析浏览器地址栏url的信息
- * */
- public functiongetParams():Object {
- var params:Object= {};
- var query:String=getAllParams();
- if(query) {
- var pairs:Array = query.split("&");
- for(var i:uint=0; i < pairs.length; i++) {
- var pos:int = pairs[i].indexOf("=");
- if(pos != -1) {
- var argname:String = pairs[i].substring(0, pos);
- var value:String = pairs[i].substring(pos+1);
- params[argname] = value;
- }
- }
- }
- return params;
- }
此方法返回的是一个object对象,如果参数链不为空,那么取值很简单,就是:
- Var obj:Object= getParams();
- Var email:String=obj.email;
然后再加入自己的业务逻辑就ok了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。