`
sjk2013
  • 浏览: 2190731 次
文章分类
社区版块
存档分类
最新评论

Flex获得URL参数

 
阅读更多

Flex获得URL参数

Flex获得URL参数有两种情况:一 获得swf后面的参数;二 获得swf所在页面的url参数。

1 获得swf后面的参数

Application Module等编译后生成一个swf文件,外面可以在swf后面添加一些参数来实现某些功能,例如debug=true,动态调整flex的日志级别。

如果是Application或Module等,可以直接用this.loaderInfo.parameters.var1;

如果是其它的就需要获得该DisplayObject 对象的root对象来获得参数,例如:root.loaderInfo.parameters.var1;

2 获得swf所在页面的url参数

在flash builder中调试的时候,html页面后面的参数自动的添加了debug=true,flex是如何获得该参数的呢?答案是JavaScript。
在Flex应用程序中,ExternalInterface主要用来让ActionScript直接与Flash Player容器进行通信。ExernalInterface类通常作为ActionScript与JavaScript进行通信的桥梁。在JS中,Window对象用来代表一个Web浏览器窗口,而窗口的Location对象则代表了当前显示的URL,于是,要想获取URL中的参数,

通常使用下面的语句:

window.location.href.toString //得到URL的完整文本
window.location.search.substring  //得到问号后面部分的URL文本
通常的参数对以test.html?debug=true这样的形式给出,在获取到问号后面的URL文本后,还需要对其分解,这时有两种途径,一种是分解过程在JS中完成,然后将最终的结果值传递给Flex,另一种是将分解的过程放在Flex中去完成。下面是as代码的实现,好处是不用写js代码了。

var queryParamStr:String = ExternalInterface.call("window.location.search.substring",1); 


queryParamStr包含所有的url参数,下面是解析url参数的方法

                                                /**
			 * 获得一个url中的参数 
			 * @param urlStr
			 * @return 如果没有参数则返回null 有参数则返回key value形式的对象
			 * 
			 */
			public  static function getUrlParam(urlStr:String):Object{
				var pattern:RegExp= /.*\?/;
				urlStr=urlStr.replace(pattern, "");
				if(urlStr.indexOf("=")==-1)
				{	return null;
				}
				// 通过&拆分成数组name=value,保存为String类型数据
				var params:Array=urlStr.split("&");
				if(params==null||params.length==0){
					return null;
				}
				var paramObj:Object={};
				for(var i:int=0;i<params.length;i++){
					var keyValue:Array=params[i].split("=");
					paramObj[keyValue[0]]=keyValue[1];
				}
				return paramObj;
			}

使用实例

                         import mx.utils.ObjectProxy;
			[Bindable]
			private var qyjlsp:Qyjlsp;
			public function init():void{
				var op:ObjectProxy= new ObjectProxy();				
				var pattern:RegExp = /.*\?/;
				var query:String = loaderInfo.url.toString();				 
				query = query.replace( pattern, "" );				 
				var params:Array = query.split( "&" );				 
				for( var i:int = 0; i < params.length; i++ ) 
				{  
					var keyVal:Array = ( params[i] ).toString().split("="); 
					op[keyVal[0]] = keyVal[1]; 
				}
				if(op.runId)runId=op.runId;
				if(op.nodeId)nodeId=op.nodeId;
				if(op.taskid)taskid=op.taskid;	
				if(op.nodeName)nodeName=op.nodeName;
                                     }                               



如果参数中中文需要解析,请参考url参数编码和解码
分享到:
评论

相关推荐

    Flex获得URL参数值.doc

    Flex获得URL参数值,与服务器断更好的完成交互

    flex获得浏览器参数,flex获得url参数

    新建MXML应用, 将文档中的代码全部复制到新建的MXML中( 替换所有内容)。 文档中的注释说明了具体使用方法。

    flex获得html容器传递的url参数值

    flex获得html容器传递的url参数值

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    MessageBrokerServlet 是真正处理 Flex 远程调用请求的 Servlet,我们需要将其映射到指定的 URL: 清单 5. 定义 Flex servlet &lt;servlet&gt; &lt;servlet-name&gt;messageBroker&lt;/servlet-name&gt; &lt;servlet-class&gt;...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    通过 RemoteObject 进行调用虽然简单,但存在不少问题:首先,RemoteObject 是一个 Dynamic Class,Flex Builder 的编译器无法替我们检查参数类型和参数个数,这样,在编写 ActionScript 代码时极易出错。...

    网址渲染服务SeimiAgent.zip

    SeimiAgent是基于QtWebkit开发的可在服务器端后台运行的一个webkit服务,可以通过SeimiAgent提供的http接口向SeimiAgent发送一个load请求(需求加载的URL以及对这个页面接受的渲染时间或是使用什么代理等参数),...

    Altium Designer Beta 19.0.10完整版安装包+安装教程+和谐文件

    修复了在“属性”面板中按“更新” (BC:9637)时未更新原理图库组件的名称/ URL链接(除非使用“输入”或“焦点更改” )的问题。 25412 修复了使用暂停的交互式进程关闭原理图文档时发生的“地址访问冲突”错误。...

    ActionScript开发人员指南中文版

    通过三角形获得D效果 第章:文本使用基础知识 第章:使用TextField类 显示文本 选择和操作文本 捕获文本输入 限制文本输入 设置文本格式 高级文本呈现 使用静态文本 TextField示例:报纸风格的文本格式设置 第章:使用...

    Spring攻略(第二版 中文高清版).part2

    5.1 加强URL访问安全 165 5.1.1 问题 165 5.1.2 解决方案 165 5.1.3 工作原理 166 5.2 登录到Web应用 175 5.2.1 问题 175 5.2.2 解决方案 175 5.2.3 工作原理 175 5.3 验证用户 179 5.3.1 问题 ...

    Spring攻略(第二版 中文高清版).part1

    5.1 加强URL访问安全 165 5.1.1 问题 165 5.1.2 解决方案 165 5.1.3 工作原理 166 5.2 登录到Web应用 175 5.2.1 问题 175 5.2.2 解决方案 175 5.2.3 工作原理 175 5.3 验证用户 179 5.3.1 问题 ...

    asp.net知识库

    通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET ...

Global site tag (gtag.js) - Google Analytics